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...