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

标签 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 和回调经验有限的人完成的。

最佳答案

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

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

});

关于Javascript async parallel - 如何返回最终结果/回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45573385/

相关文章:

javascript - HTML Onclick 事件仅适用于 # anchor 标记

javascript - 为什么 jquery.each 执行两次?

node.js - Apache 代理后面的 Sockjs/socketio 断开连接延迟

javascript - 如何在 async.each 内具有 async.waterfall 的外部函数中调用 async.each

javascript - 对于 Protractor 测试,我们可以在没有 browser.wait() 函数的情况下获取 waitElement 对象值吗?

javascript - 确定 DOM 和图像是否在 AJAX 调用 .load 中加载的函数

node.js - 是否可以在不知道名称的情况下获取电子表格中所有页面的名称?

javascript - 使用 express 中间件并将 res.local 数据传递给路由

javascript - 如何从需要返回语句的 GraphQL 解析器中调用异步 node.js 函数?

c# System.InvalidOperationException 异常