gpt4 book ai didi

javascript - Promise 数组一旦完成就解决 Promise?

转载 作者:行者123 更新时间:2023-12-01 03:22:20 25 4
gpt4 key购买 nike

我有一系列 Promise,我想在它们完成后立即触发某些操作。 Promises.all 并不完全是我想要的,因为它会等到 Iterable 中的所有 Promises 完成。 Promises.race 返回完成返回的第一个 Promise。

假设您只能使用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

最佳答案

考虑到你想使用 Vanilla JS,如果你希望它们同时执行,并且一旦它们被解析,你可以这样做:

// create a Promise that is resolved after passed millisecs with millisecs * 2 as value
const createP = (ms) => new Promise(resolve => setTimeout(() => resolve(ms * 2), ms));

// your array of Promises
const pArray = [createP(1000), createP(200), createP(500)];

// map() and Promise.all() is necessary in order to wait until all the promises are executed
Promise.all(pArray.map(promise => {
// log each result
return promise.then(console.log);
}))
.catch(err =>{
// do some error handling here if necessary
});

// it should log 400, 1000, 2000 in this order

关于javascript - Promise 数组一旦完成就解决 Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45092395/

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