解決Angularjs異步操作后臺請求用$q.all排列先后順序問題
最近我在做angularjs程序時遇到了一個問題
1.頁面有很多選擇框,一個選擇框里面有眾多的選擇項,和一個默認選定的項,像下面這樣(很多選擇框,不只一個):

2.眾多的選項要從后臺接口得到,默認項從另一個后臺接口得到,這就需要$promise.then()操作
3.而多個$promise.then()屬于異步操作,先后順序不是一定的,如果先得到眾多選項,后得到默認值,顯示就沒有問題,如果順序顛倒,默認項就會為空,這不是我想要的
4.這就需要眾多選項的后臺請求都獲得完,才去后臺請求默認值,
就用$q.all方法
let list = $q.all({ // 多個后臺請求,部分先后順序
url1: getUrl1().$promise,
url2: getUrl2().$promise,
url3: getUrl3().$promise,
});
$scope.list.then(function (result) {
// 三個后臺請求結果
result.url1
result.url2
result.url3
}).finally(function () { // finally的優(yōu)點:1.無論成功失敗都會執(zhí)行 2.前面三個請求結束后才會執(zhí)行
// 最后一個后臺請求
// TODO
});
補充:當然還有then().then().then()......這種方法,就把請求順序執(zhí)行了,不過select眾多選項的后臺請求不需要先后順序,只是默認項需要最后執(zhí)行,我就選擇$q.all這種方法了。
總結
以上所述是小編給大家介紹的解決Angularjs異步操作后臺請求用$q.all排列先后順序問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
Angular 4 依賴注入學習教程之FactoryProvider的使用(四)
這篇文章主要給大家介紹了關于Angular 4 依賴注入之FactoryProvider使用的相關資料,文中介紹的非常詳細,對大家學習或者使用Angular4具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-06-06
Angular2中constructor和ngOninit的使用講解
這篇文章主要介紹了Angular2中constructor和ngOninit的使用講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05

