某天嘗試了下在 forEach函數中調用 await Promise() 方法,如下:
var arr = [1,2,3]
arr.forEach(async (v,i,a)=>{
await Promise()
})
發現並沒有按照想象中等到上一個Promise 處理完成后再執行下個Promise。
經過查閱資料后發現,實際forEach函數內部是異步的,遇到這種問題請使用for循環,如下:
var arr = [1,2,3]
for(let i=0;i<arr.length;i++){
await Promise()
}
即可解決問題,具體原理待下次補充