以下是一个示例代码,展示了如何在一个包含Promise的方法中填充一个数组:
function fillArrayWithPromises() {
let array = [];
let promises = [];
for (let i = 0; i < 5; i++) {
promises.push(new Promise((resolve, reject) => {
setTimeout(() => {
array.push(i);
resolve();
}, Math.random() * 1000);
}));
}
return Promise.all(promises)
.then(() => {
return array;
});
}
fillArrayWithPromises()
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error);
});
在上面的示例中,fillArrayWithPromises
方法首先初始化了一个空数组array
和一个空的Promise数组promises
。然后,使用一个循环来创建5个Promise,每个Promise都会在随机的延迟后将一个数字添加到array
中,并使用resolve
方法将Promise标记为已完成。这些Promise都被推入到promises
数组中。
最后,使用Promise.all
方法等待所有的Promise都完成,并返回一个新的Promise。这个新的Promise将在所有的Promise都完成后被解决,然后通过.then
方法将填充好的数组array
返回。
在调用fillArrayWithPromises
方法后,可以使用.then
方法处理填充好的数组,并在控制台打印出结果。如果任何一个Promise出错,可以使用.catch
方法捕获并处理错误。