【发布时间】:2018-06-20 07:50:47
【问题描述】:
以下代码尝试使用 forEachSeries 迭代数组 "a,s,d,f".split(',') 并通过回调打印每次迭代的元素,但打印的唯一值是第一个元素的 iea它省略了打印 s、d 和 f。 如何让它打印所有元素?
var async = require('async');
async.forEachSeries(
"a,s,d,f".split(','),
function (el,cb) {
console.log(el);
cb(el); //<----------- NOTE: VALUE IS PASSED IN HERE - "STOPS AT FIRST ITERATION"
},
function (el) {
console.log(el)
}
);
console.log('x');
以下是输出:
a
a
x
但是,如果在将代码编辑为未在回调中传递值的代码时,则会打印所有值以及额外的null。
以下是代码和输出:
var async = require('async');
async.forEachSeries(
"a,s,d,f".split(','),
function (el,cb) {
console.log(el);
cb(); //<----------- NOTE: NO VALUE IS PASSED IN HERE - "WORKS FINE"
},
function (el) {
console.log(el)
}
);
console.log('x');
输出:
a
s
d
f
null
x
【问题讨论】:
标签: javascript node.js async.js