JavaScript嵌套异步函数在操作后返回结果

时间:2017-08-30 23:40:17

标签: javascript node.js

首先,我是javaScript async的初学者并回电。

我做了这个方法并正常工作。

Test.prototype.test3 = function(callback) {

return apiClient.returnAllmember(callback);  

}

我需要在jsonQuery

之后返回结果
Test.prototype.test2 = function(name,callback) {

apiClient.returnAllmember(function(err, data){
    if (err){
        console.log('ERROR', err);
        return;
    }

   return jsonQuery(name+'[**]', {data: data}).value
});
};

1 个答案:

答案 0 :(得分:1)

很抱歉打破它,但对于nodejs异步模型,这是不可能的。

你宁愿做的是

Test.prototype.test2 = function(name,callback) {
  apiClient.returnAllmember(function(err, data){
    if (err){
      console.log('ERROR', err);
      callback(err)
    } else {
      callback(null, jsonQuery(name+'[**]', {data: data}).value)
    }
  });
};

这意味着你不要试图从回调中返回。相反,您使用可返回数据调用回调并继续处理回调。