所以,我有一个包含三个对象的数组。它们有名称和类型属性(以及其他各种属性)。我想循环遍历它们中的每一个,并使用 readline 模块来获取所有它们的用户输入。这是我用来执行此操作的 JavaScript 代码(使用 async
模块):
async.each(questions.q, function (e, cb) {
if (e.type === "s") {
//not important
} else if (e.type === "q") {
rl.question(e.name, function (a) {
//do stuff
cb();
});
}
}, function (err) {
if (err) throw err;
});
(question.q
是元素数组)
但是,我的所有三个具有 type
q
的对象的输出如下:
Question1Question2Question3 //input
不是一次执行一个,而是 each
打印所有 3 个,然后等待输入。这是为什么?我该如何解决它?
最佳答案
您可以使用 async.eachSeries()
而不是 async.each()
来解决此问题。 async.each()
并行迭代集合(您可以使用 async.eachLimit()
限制并发),而 async.eachSeries()
按系列迭代集合(一次一个)。
关于javascript - 异步的each立即打印出所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26027023/