您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何解決Angularjs異步操作后臺(tái)請(qǐng)求用$q.all排列先后順序的問題,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
最近我在做angularjs程序時(shí)遇到了一個(gè)問題
1.頁面有很多選擇框,一個(gè)選擇框里面有眾多的選擇項(xiàng),和一個(gè)默認(rèn)選定的項(xiàng),像下面這樣(很多選擇框,不只一個(gè)):
2.眾多的選項(xiàng)要從后臺(tái)接口得到,默認(rèn)項(xiàng)從另一個(gè)后臺(tái)接口得到,這就需要$promise.then()
操作
3.而多個(gè)$promise.then()
屬于異步操作,先后順序不是一定的,如果先得到眾多選項(xiàng),后得到默認(rèn)值,顯示就沒有問題,如果順序顛倒,默認(rèn)項(xiàng)就會(huì)為空,這不是我想要的
4.這就需要眾多選項(xiàng)的后臺(tái)請(qǐng)求都獲得完,才去后臺(tái)請(qǐng)求默認(rèn)值,
就用$q.all方法
let list = $q.all({ // 多個(gè)后臺(tái)請(qǐng)求,部分先后順序 url1: getUrl1().$promise, url2: getUrl2().$promise, url3: getUrl3().$promise, }); $scope.list.then(function (result) { // 三個(gè)后臺(tái)請(qǐng)求結(jié)果 result.url1 result.url2 result.url3 }).finally(function () { // finally的優(yōu)點(diǎn):1.無論成功失敗都會(huì)執(zhí)行 2.前面三個(gè)請(qǐng)求結(jié)束后才會(huì)執(zhí)行 // 最后一個(gè)后臺(tái)請(qǐng)求 // TODO });
補(bǔ)充:當(dāng)然還有then().then().then()......
這種方法,就把請(qǐng)求順序執(zhí)行了,不過select眾多選項(xiàng)的后臺(tái)請(qǐng)求不需要先后順序,只是默認(rèn)項(xiàng)需要最后執(zhí)行,我就選擇$q.all這種方法了。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何解決Angularjs異步操作后臺(tái)請(qǐng)求用$q.all排列先后順序的問題”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。