SOURCE

//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);
console 命令行工具 X clear

                    
>
console