多个异步请求同时发出,对其结果进行有序执行~

这是一道面试时遇到的面试题,当时没手写出来,现在抽空敲出来了,补一下~
原题是这样的:

有10个ajax请求,要求同时发出,然后以次展示返回的数据,要求请求和展示相互之间不阻塞。

(async () => {
    let arr = await task(1000)
    for(let i = 0; i < 10; i++) {
        let j = await arr[i]
        console.log(j)
    }
})()
function task(timer) {
    let i = []
    let time = [9, 1, 2, 4, 6, 1, 2, 3, 5, 9]
    for(let j = 0; j < 10; j++) {
        i.push(new Promise((res, rej) => {
            setTimeout(() => {
                res(timer*time[j] + 'res')
            }, timer*time[j]);
        }))
    }
    return i
}

你可能感兴趣的:(多个异步请求同时发出,对其结果进行有序执行~)