遍历承诺所有数组问题是指给定一个包含承诺(Promise)对象的数组,需要依次执行每个承诺,并等待所有承诺都完成后返回结果。
以下是一个示例解决方法,使用了async/await和Promise.all()方法:
async function traversePromises(promises) {
try {
const results = await Promise.all(promises);
return results;
} catch (error) {
throw error;
}
}
// 示例使用
const promises = [
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1 resolved');
}, 2000);
}),
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 2 resolved');
}, 1000);
}),
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 3 resolved');
}, 3000);
})
];
traversePromises(promises)
.then(results => {
console.log(results);
})
.catch(error => {
console.error(error);
});
在这个示例中,我们定义了一个traversePromises
函数,它接受一个承诺对象数组作为参数。在函数体内,我们使用await Promise.all(promises)
来等待所有承诺都完成,并将结果存储在results
数组中。如果有任何一个承诺被拒绝,会抛出一个错误。最后,我们使用.then()
来处理成功的结果,.catch()
来处理错误。
在示例的使用部分,我们创建了一个包含3个延迟不同的承诺的数组promises
。然后调用traversePromises(promises)
函数,并在成功时打印结果,在错误时打印错误信息。
这样,我们就可以遍历所有承诺并等待它们都完成的结果。
上一篇:遍历承诺并等待?
下一篇:遍历成员列表并获取用户