在Promise.all中添加后续的Promise到数组中是可能的。Promise.all接受一个Promise数组作为参数,并返回一个新的Promise,该Promise在所有输入的Promise都解决后解决,并将所有Promise的解决值作为数组传递给解决处理程序。
如果在Promise.all调用之后,但在所有Promise都解决之前,将新的Promise添加到数组中,那么这个新的Promise也会被包含在Promise.all的返回Promise中。这意味着,只有当所有已添加的Promise和之前的Promise都解决后,返回的Promise才会解决。
以下是一个示例代码:
const promises = [Promise.resolve(1), Promise.resolve(2)];
const laterPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(3);
}, 1000);
});
setTimeout(() => {
promises.push(laterPromise);
}, 500);
Promise.all(promises)
.then((results) => {
console.log(results); // [1, 2, 3]
})
.catch((error) => {
console.error(error);
});
在上面的示例中,我们首先创建了一个包含两个已解决Promise的数组。然后,我们创建了一个稍后解决的Promise(laterPromise),并在500毫秒后将其添加到promises数组中。最后,我们使用Promise.all来等待所有Promise解决,并在所有Promise解决后打印结果数组。
请注意,这只是一个示例,实际情况中您可能需要根据具体需求进行适当的处理和错误处理。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云