專案背景:
上傳多張時需要利用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的大小!如果過程...