node.js - 将 async 与异步函数结合使用

标签 node.js asynchronous node-async

我知道这听起来很愚蠢,但我不明白如何使用 async处理现有的异步函数。

例如,考虑在某个 Node 模块中定义的一些异步函数foo(arg1, arg2, ..., argN,callback)。假设我想在 asyncwaterfall(tasks,[callback]) 函数中使用它。我怎么可能这么做呢?

//original call
foo(x1,x2,xN, function goo(err, res) {
    // do something 
});

//using async
async.waterfall([
   function(callback) {
       foo(x1,x2,...,xN, callback);
   }
], function goo(err, res) {
   // do something
}); 

但我不能这样做,因为需要在函数结束之前调用回调。 帮忙?

最佳答案

是的,你所拥有的一切都会起作用。 callback 只是告诉异步,“我完成了,转到下一个”。您还可以使用async.apply自动生成这些小包装函数:

async.waterfall([
  async.apply(foo, x1, x2, nX) //don't use callback, async will add it,
  someOtherFunction
], function (error, finalResult) {});

关于node.js - 将 async 与异步函数结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18200932/

相关文章:

nexpect 模块中的 Node.js 等待函数不起作用

javascript - 不安全异步函数的 API 设计

node.js - ld : unsupported tapi file type '!tapi-tbd' in YAML file

performance - Node.js CPU 负载均衡

node.js - 将一个Docker容器中的nodejs应用连接到Docker Swarm上另一个容器中的mongodb

javascript - 使用 Webworker 将 Javascript 函数作为线程调用

c# - 优化异步HttpClient请求

node.js - 使用 expressjs 处理异步 waterfall 中的错误

javascript - Cappuccino 和 Node.js 有什么区别?

c# - 多个异步方法,最好使用具有不同返回类型的 WhenAll