编辑:问题已解决(我讲得太早了!)...(看下面)
我正在使用.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 :
现在我可能在这里做的事情完全错了,但是我已经在reddit和Stack Overflow上将此问题发布到了
编辑:似乎在此初始示例中,我忘记添加“ return callback()”语句。 在实际在我的代码中遇到此问题的特定示例中,我有第二个异步方法,在该方法中执行此“ return callback()”语句。 似乎第二个异步方法完成运行后,我将需要使用另一个控制流功能来调用回调。 我很抱歉。 请尽快关闭此问题!!!
另一方面,我认为这对使用此方法的其他未来用户会有所帮助,帮助他们了解如何正确使用“ return callback()”语句。 在这方面肯定缺少文档,并且此库中的各个方法都没有很多,因此寻找帮助非常缓慢,乏味且困难!
老兄,您需要在每次迭代后调用“ callback()”。
async.forEachOf(testObj, function (elem, key, callback) {
console.log(elem);
anArray.push(elem);
callback() //<<<<<<<<<
},...
最有用的评论
老兄,您需要在每次迭代后调用“ callback()”。