gpt4 book ai didi

node.js - async.forEach NodeJS 中的暂停/超时

转载 作者:搜寻专家 更新时间:2023-10-31 23:32:51 26 4
gpt4 key购买 nike

假设 fruits 是一个包含 4 个项目的数组我所期望的是下面的代码将打印水果,每个水果之间有 4 秒的延迟。

var fruits = ['blueberries', 'strawberries', 'mango', 'peaches'];
async.forEach(fruits, functions(fruit, next) {
setTimeout(function() {
console.log(fruit);
}, 4000);
})

实际行为是等待 4 秒,然后打印整个列表。 :\有人知道如何实现我的预期行为吗?

最佳答案

async.forEach 并行遍历数组,这意味着它会立即为数组中的每个项目运行函数,然后当它们都执行回调时,回调函数(你未能包含)将被调用。

在您的情况下,您希望一次一个或一系列地遍历数组,因此您需要 .eachSeries 方法。

var fruits = ['blueberries', 'strawberries', 'mango', 'peaches'];
async.eachSeries(fruits, function (fruit, next) {
setTimeout(function() {
console.log(fruit);
next(); // don't forget to execute the callback!
}, 4000);
}, function () {
console.log('Done going through fruits!');
});

关于node.js - async.forEach NodeJS 中的暂停/超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com