ES6 promise簡單實現

2022-07-25 07:12:11 字數 1281 閱讀 5994

//

從promise的概念和使用分析:/**

* 一句話:利用3個狀態,當執行一次後狀態改變同時執行then中當所有事件;狀態改變後,不會在執行

* 1. 建構函式

* 2. 3個狀態:pending,fulfilled,rejected,狀態一旦確定為fulfilled,rejected就不會在更改

* 3. 引數是函式,promise內部會給作為引數的函式,傳遞2個引數,resolve,reject

* 4. resolved是乙個函式和reject是乙個函式,都是微任務,這樣才能確保先於then執行

* 5. promise執行成功會呼叫reslove,reslove對應then的第乙個引數

* 6. promise執行失敗會呼叫reject,reject對應then的第二個參

* 7. then可以有多個,所以我們需要在then中建立二個事件佇列乙個是reslove的,乙個是reject的,

* 8. 當reslove被呼叫時執行事件佇列

* */class mypromise

_resolve(val) ;

this.state =mypromise.fulfilled;

this.params=val;

//執行事件佇列中的所有內容

this.resloveeventlist.foreach((reslove) =>);

this.resloveeventlist.length = 0})

//出發message

window.postmessage("")

}_reject(val) ;

this.state =mypromise.rejected;

this.params=val;

//執行事件佇列中的所有內容

this.rejecteventlist.foreach((reslove) =>);

this.rejecteventlist.length = 0})

//出發message

window.postmessage("")

}//呼叫then

then(reslovesucc, rejectfaile)

if (typeof rejectfaile == 'function')

}}

呼叫測試:

var p=new mypromise((reslove,rejuect)=>,2000)

}).then((val)=>)

輸出結果1000,111

es6 promise 簡單總結

話不多說,直搗主題。promise用途 非同步程式設計的一種解決方案。優點 比傳統的解決方案 函式和事件 更合理和更強大。三種狀態 pending 進行中 fulfilled 已成功 和rejected 已失敗 基本用法 const promise new promise function reso...

ES6 Promise的簡單使用

promise是乙個容器,儲存某個非同步的操作 有三種狀態,進行中 已成功 已失敗 resolve代表成功的 函式 reject代表失敗的 函式 let promise new promise function resolve,reject else 通過then 方法向promise傳遞成功和失敗...

ES6 promise實現佇列迴圈

題目 紅燈三秒亮一次,綠燈一秒亮一次,黃燈2秒亮一次 如何讓三個燈不斷交替重複亮燈?用promse實現 三個亮燈函式已經存在解析 紅燈三秒亮一次,綠燈一秒亮一次,黃燈2秒亮一次,意思就是3秒,執行一次 red 函式,2秒執行一次 green 函式,1秒執行一次 yellow 函式,不斷交替重複亮燈,...