慕碼人8056858
2019-03-13 17:19:49
這個項目是在微信中基于微信的靜默登錄,也就是不需要多余用戶登錄填寫,只需要跳轉重新加載一遍頁面就完成登錄了,之前是用攔截器做的檢測到未登錄的代碼就直接跳轉實現自動登錄再返回原來頁面,但是同一個頁面該發起的請求還是同時發起了?,F在我想實現的是//同時發起5個請求axios1()//假如第一個請求拿到數據檢測到未登錄的話就取消掉后邊的幾個請求axios2()axios3()axios4()axios5()有什么比較好的思路或者實現方式么?
10 回答
慕俠2389804
TA貢獻1719條經驗 獲得超6個贊
這樣行嗎?
axios1().then(res=>{
if(!res.login){
//go login
}else{
axios2()
axios3()
axios4()
axios5()
}
})
30秒到達戰場
TA貢獻1828條經驗 獲得超6個贊
首先包裝一下每一個 promise ,即使失敗也至為 resolve 狀態,然后用 Promise.race 確保一個完成后記錄下 index 或者 id,然后重新發這個 array 里面的其他請求。
request 的 abort 不知道兼容性如何,這種方法是所有請求都必須發完全,并且除了成功的那個其他都會發兩遍。
www說
TA貢獻1775條經驗 獲得超8個贊
首先,你要復寫 axios 方法(不推薦)或者自己封裝一個方面(推薦),然后:
接到任何請求,都直接加入隊列
判斷是否已登錄,如是,則正常發送請求
如果不是,則跳轉到登錄頁登錄
登錄完成后,檢查隊列,如果有請求,就發送
添加回答
舉報
0/150
提交
取消
