最近我在做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的優點:1.無論成功失敗都會執行 2.前面三個請求結束后才會執行
// 最后一個后臺請求
// TODO
});
補充:當然還有then().then().then()......這種方法,就把請求順序執行了,不過select眾多選項的后臺請求不需要先后順序,只是默認項需要最后執行,我就選擇$q.all這種方法了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/167476.html
標籤:JavaScript
上一篇:Component 和 PureComponent 的區別;復制demo,肉眼可以的區別
下一篇:JS基礎語法---作用域鏈
