节点的模块asynchronous不能按预期工作

我试图使用节点的模块“asynchronous”,其方法“每个”,以便使用array.forEach的asynchronous版本。 问题是它没有按预期工作,因为它从来没有执行callback,我把它作为第三个parameter passing。

代码如下:

var async = require('async'); var arr = [1,2,3,4,5,6,7,8,9,10]; async.each(arr, function(element, cb){ console.log(element); }, function(err){ console.log("Done"); }); 

事实上,我的程序从不打印“完成”,即使它完成循环数组。

你有什么主意吗?

那是因为你没有在第二个参数中触发callback。

 var async = require('async'); var arr = [1,2,3,4,5,6,7,8,9,10]; async.each(arr, function(element, cb){ console.log(element); cb(); // You were missing this }, function(err){ console.log("Done"); }); 

这导致:

 1 2 3 4 5 6 7 8 9 10 Done 

您需要调用asynchronous提供的callback函数来触发结果函数,如下所示:

 var async = require('async'); var arr = [1,2,3,4,5,6,7,8,9,10]; async.each(arr, function(element, cb){ console.log(element); cb(); }, function(err){ console.log("Done"); }); 

如asynchronous文档中所述 。