Javascriptasynchronous并行 – 如何返回最终结果/callback?

如何将最终结果/callback返回给调用函数? 文档中的所有示例仅显示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和callback边缘经验的人。

如果你的函数包含asynchronous代码,所以它变成一个asynchronous函数。 你需要包含一个callback:

  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); });