您好,登錄后才能下訂單哦!
今天小編給大家分享一下es6的promise怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
在es6中,promise是“承諾”的意思,承諾表示異步操作的結果,是新增的異步編程解決方法,在代碼中表現為一個對象,主要用于解決回調地域問題,語法為“new Promise(function(resolve, reject){..})”。
本教程操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。
promise 是承諾的意思,其背后的核心思想是,承諾表示異步操作的結果。
是es6新增的異步編程解決方案,在代碼中表現為一個對象。
promise是js異步編程提供的解決方案,主要用來解決回調地域問題。
Promise有三種狀態,分別是
Pending(進行中) 初始狀態
Fulfilled (已成功) 意味著操作成功
rejected (已失敗) 意味著操作失敗
注意:Promise對象的三種狀態,不受外界的影響,只有promise中存放的將來會結束的事件才會影響。也就是只有異步操作的結果,可以決定當前是哪一種狀態,任何其他操作都無法改變這個狀態
Promise狀態一旦改變、不可逆
Pendding(進行中)狀態可以轉變為Fulfilled(已成功)狀態
Pendding(進行中)狀態可以轉變為 rejected(已失敗)狀態
promise只有這兩種情況發生狀態改變,一旦發生這兩種狀態改變,那么狀態就凝固了,會一直保持這個結果。
基本使用方法
語法:
new Promise( function(resolve, reject) {...} /* executor */ )
原理:
構建 Promise 對象時,需要傳入一個 executor 函數,主要業務流程都在 executor 函數中執行。
Promise構造函數執行時立即調用executor 函數, resolve 和 reject
兩個函數作為參數傳遞給executor,resolve 和 reject
函數被調用時,分別將promise的狀態改為fulfilled(完成)或rejected(失敗)。一旦狀態改變,就不會再變,任何時候都可以得到這個結果。
在 executor 函數中調用 resolve 函數后,會觸發 promise.then 設置的回調函數;而調用 reject
函數后,會觸發 promise.catch 設置的回調函數。
如下圖所示:
示例如下:
創建一個新的Promise對象
需要傳入一個回調函數,回調函數有2個參數,分別代表resolve(解決),reject(拒絕),并且兩個參數都是函數
如果兩個參數都不調用,默認pending狀態
let promise=new Promise(function(resolve,reject){ });//pending狀態
調用resolve 函數,代表Promise的狀態,會從pending==>fulfilled
let promise=new Promise(function(resolve,reject){ resolve(); });//fulfilled狀態
調用reject函數,代表Promise的狀態,會從pending==>rejected
let promise=new Promise(function(resolve,reject){ reject(); });//rejected 狀態
以上就是“es6的promise怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。