Promise.race() 方法
關於Promise物件的基本介紹可以參閱JavaScript Promise 物件一章節。
Promise的靜態方法,將多個Promise物件包裝成一個新的Promise物件。
race翻譯成漢語具有"競賽"或者"賽跑"的意思,恰如其名,哪個Promise物件狀態改變的快。
方法返回的Promise物件的狀態就隨著對應的Promise物件狀態發生改變。
語法結構:
[JavaScript] 純文字檢視 複製程式碼p=Promise.race(iterable);
語法解析:
(1).iterable:必需,具有遍歷器介面的物件。
iterable中的元素是Promise物件,如果不是,需要用Promise.resolve()將其轉換為一個Promise物件。
只要iterable中的任意一個Promise物件狀態改變,那麼p物件狀態也會跟著改變。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let p1 = new Promise(function(resolve, reject) { setTimeout(resolve, 500, "螞蟻部落一"); }); var p2 = new Promise(function(resolve, reject) { setTimeout(resolve, 100, "螞蟻部落二"); }); Promise.race([p1, p2]).then(function(value) { console.log(value); });
程式碼執行效果截圖如下:
程式碼分析如下:
(1).Promise.race() 方法引數是一個陣列,陣列元素是Promise物件。
(2).很明顯是p2的狀態首先發生變化,於是將"螞蟻部落二"傳遞給then的回撥函式。
(3).所以列印結果是"螞蟻部落二"。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let p1 = new Promise(function(resolve, reject) { setTimeout(reject, 50, "螞蟻部落一"); }); var p2 = new Promise(function(resolve, reject) { setTimeout(resolve, 100, "螞蟻部落二"); }); Promise.race([p1, p2]).then(function(value) { console.log(value); },function(value){ console.log(value); });
程式碼執行效果截圖如下:
程式碼分析如下:
(1).Promise.race() 方法引數是一個陣列,陣列元素是Promise物件。
(2).很明顯是p1的狀態首先發生改變,變為rejected。
(3).於是會執行then的第二個回撥函式,並將"螞蟻部落一"作為引數傳遞給回撥函式。
(4).所以最終列印結果是"螞蟻部落一"。
相關文章
- 如何使用Promise.race() 和 Promise.any() ?Promise
- 通過koa2和Promise.race()構造一個超時取消的ajax。Promise
- Java中parse方法,ValueOf方法,toString方法Java
- Java的方法靜態方法Java
- js includes方法 和 filter方法JSFilter
- 方法
- initialize方法與load方法比較
- Java System類,currentTimeMillis方法,arraycopy方法。Java
- Java方法03:方法的過載Java
- [方法]需求挖掘採集的方法
- javaSE-day04--ArrayList基本用方法、類內定義方法和方法過載、靜態方法static(類的方法)、工具方法(static)的定義和使用Java
- wait()方法與await()方法的區別AI
- Python - 物件導向程式設計 - 例項方法、靜態方法、類方法Python物件程式設計
- getPropertyPriority() 方法
- deleteRule() 方法delete
- getPropertyValue() 方法
- getBoundingClientRect() 方法GCclient
- removeProperty() 方法REM
- Equals方法
- call() 方法
- Promise then() 方法Promise
- 一、方法
- 迭代方法
- replace方法
- SpecialCells 方法
- requestFullScreen() 方法
- exitFullscreen() 方法
- toJSON() 方法JSON
- Java方法Java
- 方法引用
- Main()方法AI
- finalize方法
- 類方法
- 方法值
- 方法的過載、可變形參的方法、方法的引數值傳遞機制、遞迴方法遞迴
- Java方法02:方法的定義和呼叫Java
- Java基礎系列-equals方法和hashCode方法Java
- Java中方法重寫與方法過載Java