js利用Promise解決多次非同步請求問題

2021-09-12 09:33:55 字數 571 閱讀 4927

專案背景:

上傳多張時需要利用exif,拿到的exif資訊,所以需要在乙個迴圈裡多次使用exif。

而exif的exif.getdata()方法是非同步執行,所以產生多次非同步請求問題。

解決方法:

利用promise.all()解決。

每次迴圈建立乙個promise物件,然後建立乙個promise物件陣列,利用promise.all()即可解決。

具體實現**:

/*生成promise物件*/

function getexif(file) =>

exifpic[name] = allmetadata

resolve(exifpic)

})})

return promise

}// 構建promise物件陣列

let result = ;

for(let i =0; i < files.length; i++)

// 利用promise.all()解決非同步問題

promise.all(result).then((res) => )

利用promise解決vue非同步請求問題

用vue做專案首頁功能,設想的步驟是頁面非同步請求載入選單,由於剛載入的時候路徑是 所以沒有對應的路由顯示頁面,這樣就會導致使用者體驗很差,所以就判定在路徑為 的時候,預設匹配到選單的第乙個子節點。如下 loadmenu function user catch err let path me.rou...

利用Optional避免多次if else判斷

1 避免 if else 判斷利用策略模式 2 利用optional避免多次if else判斷 物件層層巢狀,為了邏輯嚴謹必須要進行空判斷,如果不層層判斷,有可能在某一層上收穫乙個空指標,而optional優雅的幫我們處理掉這樣的邏輯。優化前 school school null if school...

js中resize多次執行

參考 總是延遲1s 最好0.5秒左右 執行最後一次的resize。var timer null window.addeventlistener resize function timer settimeout function 1000 注 只有在拖拽視窗完成後才會改變echarts的大小!如果過程...