關於angularjs非同步操作後臺請求時,用$q.all排列先後順序的問題

来源:https://www.cnblogs.com/zhanyuefeixian/archive/2019/11/29/11956839.html
-Advertisement-
Play Games

最近我在做angularjs程式時遇到了一個問題 1.頁面有很多選擇框,一個選擇框裡面有眾多的選擇項,和一個預設選定的項,像下麵這樣(很多選擇框,不只一個): 2.眾多的選項要從後臺介面得到,預設項從另一個後臺介面得到,這就需要$promise.then()操作 3.而多個$promise.then ...


最近我在做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這種方法了

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 響應式開發 1. 響應式開發原理 使用媒體查詢針對不同寬度的設備進行佈局和樣式的設置,從而適配不同設備的目的 | 設備劃分 | 尺寸區間 | | | | | 超小屏幕(手機) | =768px~=992px~=1200px | 2. 響應式佈局容器 響應式需要一個父級作為佈局容器,來配合子級元素來實 ...
  • Accept Encoding和Content Encoding Accept Encoding和Content Encoding是HTTP中用來對採用何種壓縮格式傳輸正文進行協定的一對header。工作原理如下: 瀏覽器發送請求,通過Accept Encoding帶上自己支持的內容編碼格式列表 服 ...
  • 作者:水濤 座右銘:天行健,君子以自強不息 自白:我寫博文上來蹭蹭就是乾,我突然覺得我需要幽默一點了,好了,下麵我們說正經的 一、官方定義: DefinePlugin 允許創建一個在 編譯 時可以配置的全局常量。這可能會對開發模式和生產模式的構建允許不同的行為非常有用。如果在開發構建中,而不在發佈構 ...
  • 直接上代碼,複製粘貼就能用: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF ...
  • JS基礎語法 roadmap Part 1 - 2: Part 3 - 4: Part 5 - 6 ...
  • Google 跟蹤代碼管理器是一個跟蹤代碼管理系統 (TMS),可以幫助您快速輕鬆地更新網站或移動應用上的跟蹤代碼及相關代碼段(統稱為“代碼”)。將一小段跟蹤代碼管理器代碼添加到項目後,您可以通過網頁界面安全輕鬆地部署 Google Analytics(分析)和衡量代碼配置。 在通過clickCla ...
  • 預解析:就是在解析代碼之前 1. 預解析做什麼事? 把變數的聲明提前了 提前到當前所在的作用域的最上面 函數的聲明也會被提前 提前到當前所在的作用域的最上面 舉例: function f1() { console.log(num); var num = 10; } f1(); //此時運行結果是un ...
  • 從函數嵌套來分析: (層數一般5層內) var num=10; function f1() { var num=20; function f2() { var num=30; function f3() { var num=50; console.log(num); } f3(); } f2(); ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...