怎么让异步结果按顺序填入到数组中呢? Promise Promise.all()
const p1 = () => {
return new Promise((resolve, reject) => {
setTimeout(function () {
resolve("p1");
}, 2000);
})
}
const p2 = () => {
return Promise.resolve(2);
}
const p3 = () => {
return Promise.resolve(3);
}
promiseAll([p1(), p2(), p3()]).then(res => {
console.log(res);
});
function promiseAll(arr) {
return new Promise( (resolve, reject) => {
let result = [];
for (var i = 0; i < arr.length; i++) {
arr[i].then(res => {
result.push(res); // 怎么让这个 res按循序填入数组中呢?
if (result.length == arr.length) {
resolve(result);
}
}).catch(err => {
reject(err);
})
}
})
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Promise.allSettled()
使用 async ... await 格式转换成按顺序执行