Promise.resolve() 方法
關於Promise物件的基本介紹可以參閱JavaScript Promise 物件一章節。
Promise.resolve()方法是Promise的靜態方法, 返回一個以給定引數值解析後的Promise物件。
語法結構:
[JavaScript] 純文字檢視 複製程式碼Promise.resolve(value);
引數解析:
(1).value:可選,用來待解析的引數。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let p = Promise.resolve(); p.then(function () { console.log("螞蟻部落"); });
程式碼執行效果截圖如下:
如果Promise.resolve()沒有引數,直接返回一個Resolved狀態的Promise物件。
於是會執行then的第一個回撥函式,所以列印出"螞蟻部落"。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let p = Promise.resolve("螞蟻部落"); p.then(function (value) { console.log(value); });
程式碼執行效果截圖如下:
如果Promise.resolve()方法的引數是值型別,同樣返回一個Resolved狀態的Promise物件、
引數傳遞給then()方法的第一個回撥函式,於是列印結果是"螞蟻部落"。
上面的程式碼等同於如下程式碼:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let p = new Promise(function (resolve, reject) { resolve("螞蟻部落") }) p.then(function (value) { console.log(value); });
程式碼比較簡單,不再做介紹,再看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let p = new Promise(function (resolve, reject) { resolve("螞蟻部落") }) let newP = Promise.resolve(p); console.log(newP==p); newP.then(function (value) { console.log(value) })
程式碼執行效果截圖如下:
如果引數是一個Promise物件,那麼將會直接返回這個Promise物件。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let thenable = { then: function(resolve, reject) { reject("螞蟻部落"); } }; let p = Promise.resolve(thenable); p.then(function () { //code }).catch(function (value) { console.log(value) })
如果引數是一個thenable物件(具有then方法的物件),Promise.resolve方法會將這個物件轉為Promise物件,然後就立即執行thenable物件的then方法;Promise物件的狀態會由thenable物件的then方法決定。
相關文章
- 實現 Promise.resolve/reject/all/race 及例項方法 .catch/.finallyPromise
- 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
- net 靜態方法與非靜態方法