gpt4 book ai didi

javascript - 每次循环完成后 promise 履行

转载 作者:行者123 更新时间:2023-11-28 19:33:07 26 4
gpt4 key购买 nike

promise.each(function(obj){
obj.doIntensiveWork()
.then(function(){
console.log("I AM FIRST")
})
})
.then(function(){
console.log("I AM SECOND")
})

假设doIntentialWork()需要相当长的时间才能完成。 “I AM SECOND” 将在 “I AM FIRST” 之前记录,因为 each 被解析为 doIntectiveWork() 在每个 obj 上被调用(但未实现)。这是正确的吗?

如果是,我如何反转它以确保“I AM SECOND”被记录仅一次并且在最后一个“I AM FIRST”之后 日志?我正在使用Bluebird API

最佳答案

您是正确的,因为每个人都不会等待强化工作完成。您可以使用 map 函数“加入”所有密集工作(不要忘记return)

promise.map(function(obj){
return obj.doIntensiveWork()
.then(function(){
console.log("I AM FIRST")
})
})
.then(function(){
console.log("I AM SECOND")
})

关于javascript - 每次循环完成后 promise 履行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26385129/

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