promise的状态值_什么是Promise,Promise的三种状态
什么是Promise對象:
Js中進行異步編程的新的解決方案,用于表示一個異步操作的最終完成 (或失敗), 及其結果值.。
語法上:promise是一個構造函數
簡單來說,promise對象用來封裝一個異步操作并可以獲取其結果
語法:
new Promise(function (resolve, reject) {
...
} /* executor */)復制代碼
executor:executor是帶有 resolve 和 reject 兩個參數的函數 。Promise構造函數執行時立即調用executor 函數, resolve 和 reject 兩個函數作為參數傳遞給executor(executor 函數在Promise構造函數返回所建promise實例對象前被調用)。resolve 和 reject 函數被調用時,分別將promise的狀態改為
fulfilled(完成)或rejected(失敗)。executor 內部通常會執行一些異步操作,一旦異步操作執行完畢(可能成功/失敗),要么調用resolve函數來將promise狀態改成
fulfilled,要么調用reject 函數將promise的狀態改為rejected。如果在executor函數中拋出一個錯誤,那么該promise 狀態為rejected。executor函數的返回值被忽略。
promise 有三種狀態
Pending(進行中,初始狀態,既不是成功,也不是失敗狀態。)、Resolved(已完成,又稱 Fulfilled)、Rejected(已失敗)這三種狀態的變化途徑只有2種:
異步操作從 未完成 pending => 已完成 resolved
異步操作從 未完成 pending => 失敗 rejected
狀態一旦改變,就無法再次改變狀態,這也是它名字 promise-承諾 的由來,一個promise對象只能改變一次
pending 狀態的 Promise 對象可能會變為fulfilled 狀態并傳遞一個值給相應的狀態處理方法,也可能變為失敗狀態(rejected)并傳遞失敗信息。當其中任一種情況出現時,Promise 對象的 then 方法綁定的處理方法(handlers )就會被調用(then方法包含兩個參數:onfulfilled 和 onrejected,它們都是 Function 類型。當Promise狀態為
fulfilled時,調用 then 的 onfulfilled 方法,當Promise狀態為
rejected時,調用 then 的 onrejected 方法, 所以在異步操作的完成和綁定處理方法之間不存在競爭)。
因為 Promise.prototype.then 和 Promise.prototype.catch 方法返回promise 對象, 所以它們可以被鏈式調用。
?
總結
以上是生活随笔為你收集整理的promise的状态值_什么是Promise,Promise的三种状态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: debconf-set-selectio
- 下一篇: 代码重构的方法和经验_关于烂代码优化重构