H5W3
当前位置:H5W3 > 其他技术问题 > 正文

怎么让异步结果按顺序填入到数组中呢? 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);
})
}
})
}

回答

Promise.all([p1(), p2(), p3()])
    .then(function(result){
        console.log(result) // ["p1",2,3]
    })

Promise.allSettled()

使用 async … await 格式转换成按顺序执行

async function(){
    const a = await Promise();
    const b = await Promise();

未经允许不得转载:H5W3 » 怎么让异步结果按顺序填入到数组中呢? Promise Promise.all()

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址