解決for迴圈中非同步請求順序不一致的問題

2022-03-25 00:28:43 字數 541 閱讀 8936

解決for迴圈中非同步請求順序不一致的問題

for迴圈,再把迴圈出來的id再進行二次請求

這就導致乙個問題

請求結果返回順序不一致

解決方法:

通過map方法進行迴圈請求

將非同步請求方法封裝起來,返回乙個promise

這樣將會返回乙個具有多個promise的陣列

通過promise.all()方法把promise包裝成乙個新的promise例項

//

通過promise把所有的非同步請求放進事件佇列中

getinfo(item ,index) )

}, ms)

})}

//返回多個promise

let promise = arr.map((item,index) = >)

})//

對返回的promise陣列進行操作

peomise.all(promise).then((alldata) =>)

})

js 迴圈中的非同步

for var i 0 i 5 i 0 1 2 3 4 加入延時 for var i 0 i 5 i 1000 i 5 立即執行 5 一秒後 5 一秒後 5 一秒後 5 一秒後var output function i 1000 i for var i 0 i 5 i 0 立即執行 1 一秒後 2 ...

for迴圈中的非同步處理(非同步變同步)

前沿 參考es6語法的async await的處理機制 先上一段 function getmoney compute.exec 這是個非同步方法,在裡面處理一些實際業務 這時候列印出來的很可能就是300,300,300 因為非同步for迴圈還沒有等非同步操作返回promise物件過來i值已經改變 a...

For迴圈中進行Ajax請求

這段時間一直在做乙個平台,平台資料有點多所以我進行了 水平分表 導致表很多,但是有些功能需要遍歷所有表中資料時,會導致mysql直接崩潰,於是只能一次一次請求後端進行mysql 的查詢。但是由於for 迴圈是乙個單執行緒的東西,而ajax是多執行緒的,之所以稱之為非同步同步,是因為執行到ajax的時...