Promise 的 用法及實現

2022-09-01 15:33:18 字數 1022 閱讀 1690

promise 物件用於乙個非同步操作的最終完成(或失敗)及其結果值的表示。

語法new promise( function(resolve, reject) );

在函式體中,呼叫 resolve 會把狀態改為成功 , reject 把狀態改為失敗,狀態只可操作一次.

狀態改變之後,會繼續執行promise的then函式

promise 物件一共有三個狀態 ( [[ promisestatus ]] ) :

pending : 初始狀態

fullfilled : 成功

rejected : 失敗 

promise的方法很少:

promise.all( promise陣列 )

當 所有的promise的狀態成功後,執行成功,有任何乙個promise失敗時 則立刻執行失敗

promise.race( promise陣列 )

以第乙個狀態改變的 promise 的狀態 來確定 成功 還是 失敗

promise.reject( str )

任務失敗

promise.resolve( value )

任務成功

promise.prototype.catch( onrejected )

捕獲過程中的錯誤

promise.prototype.then( onfulfilled , onrejected )

處理成功或者失敗的狀態

接下來 我們用js指令碼來實現乙個 promise 的簡單實現

function

_promise( func )

runnext()

}function

reject()

runnext()

}function

runnext())

}else

) }

}this.then = function

( ons , onf )

func(resolve,reject)

}

Promise 用法 及 特點

1 promise 是什麼?從 語法上來說是乙個 建構函式,從功能上來說是乙個封裝好的解決非同步載入的方法 注意 同步 是在他的建構函式中,非同步 是在 then 裡面執行的 2 promise 用來 解決什麼的?乙個是 為了解決 非同步 必須 在啟動任務之前執行,還有乙個是為了解決 地獄的問題 3...

實現Promise的相關用法

promise.all p1,p2,p3 以陣列的形式傳入每個promise例項,返回乙個新的promise物件 每個例項的結果均為resolve時,將結果推入陣列中,並resolve出來。有乙個例項的結果為reject時,就reject出來 promise.all方法的引數可以不是陣列,但必須具有...

promise 的基本用法

resolve 既是函式也是引數,它用於處理成功的 在非同步任務成功的時候,去呼叫resolve reject 既是函式也是引數,它用於處理失敗的 在非同步任務失敗的時候,去呼叫reject 知識點1 例1 最基本的寫法 promise的基本語法哦 const aa new promise func...