1

在forEach内部直接使用await会报错,需要在匿名函数前加上async,即参数前面,如

methods: {
  aaa (i) {
    return new Promise((res, rej) => {
      setTimeout(() => {
        console.log(i)
        res()
      }, 1000)
    })
  }
}
mounted () {
  let arr = [1, 2, 3]
  arr.forEach(async (i) => {
    await this.aaa(i)
  })
}

但实际上在forEach中正确使用了await也不会起作用,依然是异步执行。原因是forEach内部封装了while,所以不会起作用,更换for或者while就可,如

async mounted () {
  let arr = [1, 2, 3]
  for (let i = 0; i < arr.length; i++) {
    await this.aaa(i + 1)
  }
}

原文:https://blog.csdn.net/xuefuruanjian/article/details/88578457


坂田银八
24 声望2 粉丝

前端底层打工仔