处理各个异步操作集合结果的遍历的最终解决方案是for await of (es2018出现的)
for...of的实现
function Gen(time) {
return new Promise((resolve, reject) => {
setTimeout(function () {
resolve(time)
},time)
})
}
async function test() {
let arr = [Gen(2000), Gen(1000), Gen(3000)]
for(let itemArr of arr) {
let item = await itemArr.then((val) => {
return new Promise((res) => {
res(val);
})
})
console.log(Date.now(), item);
}
}
test()
for await...of实现
function Gen(time) {
return new Promise((resolve, reject) => {
setTimeout(function () {
resolve(time)
},time)
})
}
async function test() {
let arr = [Gen(2000), Gen(1000), Gen(3000)]
for await(let item of arr) {
console.log(Date.now(), item);
}
}
test()