在下面的代碼,我已經Array.forEach
,它執行序列中的doSomething
同步功能:如何與async.js並行執行函數?
items.forEach(function(item) {
doSomething(item);
});
我需要並行地執行的功能(doSomething
),使用async.js
和嘗試以下方法:
async.each(items, function (item, doneCallback) {
var startDate = new Date();
console.log(item.name().toString() + ' startDate: ' + startDate.toString() + ' - ' + startDate.getMilliseconds().toString());
doSomething(item); //Lazy function for many operations.
var endDate = new Date();
console.log(item.name().toString() + ' endDate' + endDate.toString() + ' - ' + endDate.getMilliseconds().toString());
return doneCallback(null);
}, function (err) {
otherFunction();
console.log('Finished');
});
但函數doSomething
是按順序執行的。
我曾試圖與async.parallel
,但功能doSomething
在順序再次執行:
items.forEach(function (item) {
var func = function (doneCallback) {
var startDate = new Date();
console.log(item.name().toString() + ' startDate: ' + startDate.toString() + ' - ' + startDate.getMilliseconds().toString());
doSomething(item); //Lazy function for many operations.
var endDate = new Date();
console.log(item.name().toString() + ' endDate' + endDate.toString() + ' - ' + endDate.getMilliseconds().toString());
return doneCallback(null);
};
functions.push(func);
});
async.parallel(functions, function (err, results) {
otherFunction();
console.log('Finished');
});
如何使用async.js
並行執行doSomething
同步功能?
請幫幫我。
感謝您的信息,後來我已經嘗試與parallel.js,但我有問題與IE瀏覽器。 [Parallel.js在IE中有Blob問題](http:// stackoverflow。COM /問題/ 21744104 /並行JS-有-問題,與二進制大對象 - 在-IE) – kuskunko