节点的模块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文档中所述 。