Async: forEachOf-不调用最终回调

创建于 2015-06-29  ·  1评论  ·  资料来源: caolan/async

编辑:问题已解决(我讲得太早了!)...(看下面)

我正在使用.forEachOf方法在遍历给定对象后引发回调。 唯一的问题是,似乎永远不会抛出作为第三个参数传递给forEachOf的最终回调。

这是问题的一些示例代码:

var async = require('async');

var anArray = [];

var testObj = {
    'a': '1',
    'b': '2',
    'c': '3'
};

async.forEachOf(testObj, function (elem, key, callback) {
    console.log(elem);

    anArray.push(elem);
}, function (err) {
    if (err) {
        console.error(err.message);
    }

    console.log("This line should be printed at the end.", anArray);
});

它在Runnable上: http :

现在我可能在这里做的事情完全错了,但是我已经在redditStack Overflow将此问题发布到了

编辑:似乎在此初始示例中,我忘记添加“ return callback()”语句。 在实际在我的代码中遇到此问题的特定示例中,我有第二个异步方法,在该方法中执行此“ return callback()”语句。 似乎第二个异步方法完成运行后,我将需要使用另一个控制流功能来调用回调。 我很抱歉。 请尽快关闭此问题!!!

另一方面,我认为这对使用此方法的其他未来用户会有所帮助,帮助他们了解如何正确使用“ return callback()”语句。 在这方面肯定缺少文档,并且此库中的各个方法都没有很多,因此寻找帮助非常缓慢,乏味且困难!

question

最有用的评论

老兄,您需要在每次迭代后调用“ callback()”。

async.forEachOf(testObj, function (elem, key, callback) {
    console.log(elem);
    anArray.push(elem);
callback() //<<<<<<<<<
},...

>所有评论

老兄,您需要在每次迭代后调用“ callback()”。

async.forEachOf(testObj, function (elem, key, callback) {
    console.log(elem);
    anArray.push(elem);
callback() //<<<<<<<<<
},...
此页面是否有帮助?
0 / 5 - 0 等级