我正在尝试获取返回值,但始终无法定义。
var hasNext;
es.search(nextQuery, function (err, data) {
if(data.hits.hits.length) {
return hasNext = true;
}
return hasNext = false;
});
我不确定如何获取任何返回值并在其他地方使用它?我需要使用此返回值来与其他函数进行验证,但是它似乎在范围之内。
这是我的代码:
functions.getRecentPost = function ( req, res, next ) {
.........
// This will get all the post
es.search(query, function (err, data) {
if(err) { // if error means no post and redirect them to create one
return res.redirect('/new/post');
}
....
content.hasPrevious = hasPreviousPage(_page, content.posts.length); // this function is okay
hasNextPage(_page, content.posts.length, function (data) {
content.hasNext = data;
});
res.render("index.html", content);
});
};
function hasNextPage (pageNum, totalPost, callback) {
es.search(query, function (err, data) {
if(data.hits.hits.length) {
return callback(true);
}
return callback(false);
});
};
移动以下行:
res.render("index.html", content);
进入hasNextPage
回调:
functions.getRecentPost = function ( req, res, next ) {
//.........
es.search(query, function (err, data) {
//.........
hasNextPage(_page, content.posts.length, function (data) {
content.hasNext = data;
res.render("index.html", content);
});
});
};
如果希望getRecentPost
返回某些内容,则还需要向其添加回调,以便可以使用它的返回值。例如,如果您希望这样做:
functions.getRecentPost = function ( req, res, next) {
//......
return content;
}
doSomething(functions.getRecentPost(x,y,z));
这将无法正常工作,因为内容的最终值将被异步检索。相反,您需要这样做:
functions.getRecentPost = function ( req, res, next, callback ) {
//.........
hasNextPage(_page, content.posts.length, function (data) {
content.hasNext = data;
res.render("index.html", content);
callback(content);
});
};
functions.getRecentPost(x,y,z,function(content){
doSomething(content);
})
您不能异步返回数据。您需要通过编写如下代码来更改代码(和思维):
asyncFunction(function(data){
foo = data;
});
doSomething(foo);
到这个:
asyncFunction(function(data){
doSomething(data);
});
基本上,将所有要在异步函数之后运行的代码移入传递给它的回调函数中。
常规命令式代码如下所示:
function fN () {
x = fA();
y = fB(x);
z = fC(y);
return fD(fE(z));
}
异步代码如下所示:
function fN (callback) {
fA(function(x){
fB(x,function(y){
fC(y,function(z){
fE(z,function(zz){
fD(zz,function(zzz){
callback(zzz);
});
});
});
});
});
}
请注意,您不返回,而是传递了一个回调。
问题内容: 我有一个计算税金的函数。 我不明白为什么它不能停止递归。 问题答案: 在您的职能部门中: 您没有从函数或设置中返回值。当您不返回任何内容时,返回值为。 也许,您想要这样:
我真的需要温习一下我的异步等待和promise。我想要一些建议。 我正在对firebase firestore进行异步函数调用。函数应根据单个输入参数返回字符串。 该功能适用于1-1用户聊天。该功能是创建聊天/查找现有聊天,并返回其ID。 现在,我得到的作为返回值的和不知道为什么。除了返回之外,该函数还能正常工作。 我有两个功能。一个是React类组件生命周期方法,另一个是我的firebase异步
问题内容: 我正在使用Postgresql 8.3,并具有以下简单功能,该功能会将a返回 给客户端 现在,我可以使用以下SQL命令来调用此函数并操纵返回的游标,但是游标名称是由PostgreSQL自动生成的 此外,如38.7.3.5中所述,显式地将游标名称声明为函数的输入参数 。返回游标。我可以声明自己的游标名称并使用此游标名称来操纵返回的游标,而不是为我自动生成的Postgresql吗?如果不是
问题内容: 当我要实现Authorize.net付款网关时。但是,我收到此错误: 调用未定义的函数curl_init() 请让我知道其中有什么问题。 问题答案: 如果您使用的是Windows: 转到您的php.ini文件,并从以下行的开头删除标记: 保存文件后, 必须 重新启动HTTP服务器软件(例如Apache),然后才能生效。 对于Ubuntu 13.0及更高版本,只需使用已解包的软件包。在终
问题内容: 我刚刚将脚本切换到其他服务器。在以前的服务器上,它可以完美地工作,现在,我将它们切换到其他服务器上,我无法理解问题。 我不确定是否有帮助,但这是相关的代码。 PHP版本是:PHP 5.3.2 问题答案: 从文档开始,在PHP 5.4.0发行之前: 仅当PHP作为Apache模块安装时才支持此功能。 PHP 5.4.0和更高版本无条件支持此功能。 所述文档还包括替换功能,这些功能通过逐步