gpt4 book ai didi

javascript - 循环收集异步和同步数据

转载 作者:行者123 更新时间:2023-11-28 05:27:18 31 4
gpt4 key购买 nike

    var data = [10,21,33,40,50,69];
var i = 0;
var dataSeq = [];
while(i<data.length){
if(data[i]%2 == 0){
store.findOne({'visibility': true},function(err, data){
dataSeq.push(i)
i++;
});
}
else{
dataSeq.push(i)
i++;
}
}
if(i==data.length-1){
console.log(dataSeq) // Should Print [1,2,3,4,5]
return res.status(200).send({ message: 'Task Completed'})
}

我想根据循环执行收集数据。我知道如何在 Node.js 中处理异步调用。但我想要按顺序回调。例如虽然 if 条件中有一个异步调用,但我想拖拽循环,这样我就可以将 i 的值推送到 dataSeq 中,它将产生 [1,2,3,4,5] 数组。我想要该序列,因为我的后期操作依赖于该序列。

最佳答案

我认为asyncjs#eachSeries有你需要的。

你的代码会变成这样:

async.each(data, (item, callback) => {
if(item%2 == 0){
store.findOne({'visibility': true},function(err, data){
dataSeq.push(i)
i++;
});
}
else{
dataSeq.push(i)
i++;
}
}, (err) => {
// if any of the callbacks produced an error, err would equal that error
});

关于javascript - 循环收集异步和同步数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40041210/

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