Javascript异步并行-如何返回最终结果/回调?
如何将最终结果/回调返回给调用函数? 文档中的所有示例仅显示console.log()选项 以下代码仅用于示例目的Javascript异步并行-如何返回最终结果/回调?,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,如何将最终结果/回调返回给调用函数? 文档中的所有示例仅显示console.log()选项 以下代码仅用于示例目的 function foo(input) { async.parallel([ function(callback) { callback(null, input.one); }, function(callback) { callback(null, input.two);
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和回调没有多少经验的人解释这是如何做到的 如果您的函数包含异步代码,那么它将成为异步函数。您需要包括一个回调:
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);
});
将回调添加到您的
foo
函数中,并使用最后的async
回调的结果调用它。如果您的两个函数实际上不是异步的,为什么要使用async
?@alexmac您可以发布答案吗?我仍在努力思考回调:|@bergi这只是一个例子。我正在努力学习:)不要忽视错误!直接使用async.parallel([…],cb)
。@DanielBjørnådalreturn
语句不需要。