这是一道面试时遇到的面试题,当时没手写出来,现在抽空敲出来了,补一下~
原题是这样的:
有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
}
网友评论