我必须用node.js编写一些代码片段,在那里我需要用async.js控制异步流。async.js中有一个名为async.waterfall的函数,它提供了将一些值传递给下一个执行函数的机会。我的问题是我必须运行async.eachSeries来控制数组上的流,但是我找不到任何选项来传递一些值,比如瀑布。有吗?
发布于 2015-04-07 14:20:05
async.eachSeries()没有传递该值的选项,但是您可以使用closure保存该值以供下一次迭代使用。例如:
var async = require('async');
(function() {
var lastValue = 1;
async.eachSeries([1, 2, 3, 4, 5], function (item, eachCb) {
console.log('item ' + item + ', last value: ' + lastValue);
lastValue = lastValue + item;
eachCb(null);
}, function (err) {
console.log('done:' + lastValue);
});
})();输出将为:
item 1, last value: 1
item 2, last value: 2
item 3, last value: 4
item 4, last value: 7
item 5, last value: 11
done: 16正如您在输出中看到的,当前迭代使用的是上一次迭代的保存值。
https://stackoverflow.com/questions/29484546
复制相似问题