for await of

939 阅读1分钟

处理各个异步操作集合结果的遍历的最终解决方案是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()