在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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。