node.js async.series 不工作

Posted

技术标签:

【中文标题】node.js async.series 不工作【英文标题】:node.js async.series not working 【发布时间】:2012-06-02 11:52:15 【问题描述】:

这段代码直接来自示例:https://github.com/caolan/async#seriestasks-callback

var async = require("async");
async.series([
    function()  console.log("a"); ,
    function()  console.log("b"); 
], function(err, results)
    console.log(err);
    console.log(results);
);

但它不起作用。它在打印“a”后停止。

这是最新版本的异步模块的错误还是我的使用有问题?

【问题讨论】:

【参考方案1】:

您在传递给 async.series 的数组中提供的函数需要接受该函数在任务完成时调用的回调参数。所以你想这样做:

async.series([
    function(callback) 
        console.log("a"); 
        callback();
    ,
    function(callback) 
        console.log("b");
        callback();
    
]...

【讨论】:

它有效。但我想知道为什么在他们的维基中他们这样提到它 async.series([ function() ... , function() ... ]); callback 在哪里初始化? 即使我将callback 替换为callbach,此功能似乎也可以工作。为什么会这样? @AndersonGreen callback 参数由async 框架在调用您的方法时提供。它对你说:'当你的函数完成它的工作时调用这个回调方法'。 每当我在内部调用(使用 async.series 的一个函数)(使用 async.series 的另一个函数)时,它都会以错误的顺序调用函数,详情如下:***.com/questions/12554017/…

以上是关于node.js async.series 不工作的主要内容,如果未能解决你的问题,请参考以下文章

Node.js:async.series 中的 forEach

Node.js异步库async

Node.js中流程控制

node.js async.js nextTick vs setImmediate

node.js async.js nextTick vs setImmediate

使用 Node.js、Async 和 Formidable 处理错误