如何返回 Node.js 回调

Posted

技术标签:

【中文标题】如何返回 Node.js 回调【英文标题】:How to return Node.js callback 【发布时间】:2015-07-16 07:17:32 【问题描述】:

我有一个 node.js 方法,它使用 mongoose 来返回一些数据,问题是因为我在我的方法中使用回调,所以没有任何东西返回给客户端

我的代码是:

var getApps = function(searchParam)
    var appsInCategory = Model.find( categories: searchParam);
    appsInCategory.exec(function (err, apps) 
        return apps;
    );

例如,如果我尝试使用 json 对象同步执行此操作,它将起作用:

var getApps = function(searchParam)
    var appsInCategory = JSONOBJECT;
    return appsInCategory
 

我能做什么?

【问题讨论】:

【参考方案1】:

您无法从回调中返回 - 请参阅 this canonical about the fundamental problem。由于您正在使用 Mongoose,因此您可以为它返回一个承诺:

var getApps = function(searchParam)
    var appsInCategory = Model.find( categories: searchParam);
    return appsInCategory.exec().then(function (apps) 
        return apps; // can drop the `then` here
    );

这会让你做什么:

getApps().then(function(result)
    // handle result here
);

【讨论】:

以上是关于如何返回 Node.js 回调的主要内容,如果未能解决你的问题,请参考以下文章

Node.JS:如何将变量传递给异步回调? [复制]

我们如何将字符串从回调函数返回到 node.js 中的根函数?

使用 Node.js 回调和返回

从回调返回值或在 node.js 中的特定回调之外访问它?

Node.js学习四 Node.js回调函数

Node.js 回调函数