//JS异步数据流,实现并发异步请求,结果顺序输出
const timer = [3000, 2000, 1000, 5000, 5000];
function myTimeout(timer) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(timer);
}, timer);
});
}
async function orderPrint(timer) {
const promises = timer.map((time) => myTimeout(time));
for (const p of promises) {
// 第一次运行await p后发生了阻塞3s后解开,这时候第二和第三项的promsie已经解开了会直接得到结果log出来
try {
console.log(await p);
}catch (e) {
console.log(e);
}
}
}
orderPrint(timer);