在JavaScript中,如果你尝试将Promises推送到一个数组中,但数组仍然为空,这通常是因为你在推送Promises之前没有正确地初始化数组,或者在推送Promises时使用了异步操作,但没有等待这些操作完成。
fetch
API获取数据。setTimeout
或setInterval
。以下是一个示例,展示如何正确地将Promises推送到数组中,并等待所有Promises完成:
// 初始化一个空数组来存储Promises
let promisesArray = [];
// 创建一些异步任务(Promises)
for (let i = 0; i < 5; i++) {
let promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(`Task ${i} completed`);
}, 1000);
});
// 将Promise推送到数组中
promisesArray.push(promise);
}
// 使用Promise.all等待所有Promises完成
Promise.all(promisesArray)
.then(results => {
console.log('All tasks completed:', results);
})
.catch(error => {
console.error('One of the tasks failed:', error);
});
Promise.all
等待所有Promises完成。Promise.all
等待所有Promises完成。.catch
捕获并处理错误。.catch
捕获并处理错误。通过以上方法,你可以确保Promises被正确推送到数组中,并且在所有异步操作完成后得到处理。