Javascript async parallel - 如何返回最终结果/回调?

时间:2017-08-08 16:19:17

标签: javascript node.js asynchronous

如何将最终结果/回调返回给调用函数? 文档中的所有示例仅显示console.log()选项。

以下代码仅供参考。

function foo(input) {
    async.parallel([
        function(callback) {
            callback(null, input.one);
        },
        function(callback) {
            callback(null, input.two);
        }
    ],
    function(err, results) {
        // What to do here? all examples include console.log()
        // I want to return the result ([1, 2]) to the calling function!
    });
}

var data = {"one": 1, "two": 2};
var bar = foo(data);

console.log(bar); // Will return [1, 2]

编辑:此问题已标记为重复。另一篇文章没有解释如何对有javascript和回调的边缘经验的人这样做。

1 个答案:

答案 0 :(得分:2)

如果您的函数包含异步代码,那么它将成为异步函数。您需要包含一个回调:

    function foo(input, cb) {

       async.parallel([
          function(callback) {
              callback(null, input.one);
          },
          function(callback) {
            callback(null, input.two);
          }
      ],
      function(err, results) {
       return cb(results);
      });
   }

修改你的电话:

var data = {"one": 1, "two": 2};
foo(data, function(bar){
  console.log(bar);

});