摘要:先把的回調(diào)先到數(shù)組,然后在調(diào)用該回調(diào)鏈?zhǔn)秸{(diào)用,一個簡單是實(shí)現(xiàn)原理,方法中使用,為的是鏈?zhǔn)秸{(diào)用,首次遍歷數(shù)組時,下標(biāo)為,傳入到首次的返回結(jié)果。如果有錯請各位多多指點(diǎn),勿噴,
let P = class {
constructor(callback) { this.resolveSet = []; this.rejectSet = []; setTimeout(() => { **// 先把then的回調(diào)先push到數(shù)組 ,然后在調(diào)用該回調(diào)** callback(this.resolve.bind(this), this.reject.bind(this)) }, 0); } resolve(result) { this.resolveSet.reduce((before, current,i) => { // 鏈?zhǔn)秸{(diào)用 if(i ===1){ return current(before(result)) }else{ return current(before) } }) } reject(err) {} then(callback) { this.resolveSet.push(callback); return this } catch (callback) {} } new P((resolve, reject) => { return resolve({ result: "resolve" }) }).then(data => { return { result: 1 } }).then((x) => { return {result:2} }).then(x=>{ debugger }),
一個簡單是實(shí)現(xiàn)原理,resolve方法中使用reduce,為的是鏈?zhǔn)秸{(diào)用,首次遍歷callback數(shù)組時,下標(biāo)為 1,傳入到首次的返回結(jié)果。
如果有錯請各位多多指點(diǎn),勿噴,
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/101247.html
摘要:追加在本輪循環(huán)的異步任務(wù)追加在次輪循環(huán)的異步任務(wù)規(guī)定,和的回調(diào)函數(shù),追加在本輪循環(huán),即同步任務(wù)一旦執(zhí)行完成,就開始執(zhí)行它們。 author: 陳家賓 email: 617822642@qq.com date: 2018/2/23 Promise 基本實(shí)現(xiàn) var PENDING = 0; var FULFILLED = 1; var REJECTED = 2; function Pr...
摘要:解析原理,實(shí)現(xiàn)一個概述這篇文章旨在解析的異步實(shí)現(xiàn)原理,并且以中的為藍(lán)本實(shí)現(xiàn)一個簡單的。具體的規(guī)范可以參見細(xì)節(jié)構(gòu)造器中必須傳入函數(shù),否則會拋出錯誤。中的回調(diào)返回值會影響返回的對象。執(zhí)行器傳入構(gòu)造器的為函數(shù),并且在構(gòu)造時就會執(zhí)行。 解析 Promise 原理,實(shí)現(xiàn)一個Promise 概述 這篇文章旨在解析 Promise的異步實(shí)現(xiàn)原理,并且以 ES6中的 Promise 為藍(lán)本實(shí)現(xiàn)一個簡單...
摘要:不兼容問題,本文不予以處理,出門左轉(zhuǎn),找谷哥。如果中的回調(diào)函數(shù)拋出一個錯誤,那么返回的將會成為拒絕狀態(tài),并且將拋出的錯誤作為拒絕狀態(tài)的回調(diào)函數(shù)的參數(shù)值。 Promise與async 主要內(nèi)容: promise基本實(shí)現(xiàn)原理 promise 使用中難點(diǎn)(鏈?zhǔn)秸{(diào)用,API基本上返回都是一個新Promise,及參數(shù)傳遞) promise 對異常處理 參考: ? 30分鐘,讓你徹底明...
摘要:從最開始的到封裝后的都在試圖解決異步編程過程中的問題。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。寫一個符合規(guī)范并可配合使用的寫一個符合規(guī)范并可配合使用的理解的工作原理采用回調(diào)函數(shù)來處理異步編程。 JavaScript怎么使用循環(huán)代替(異步)遞歸 問題描述 在開發(fā)過程中,遇到一個需求:在系統(tǒng)初始化時通過http獲取一個第三方服務(wù)器端的列表,第三方服務(wù)器提供了一個接口,可通過...
摘要:的翻譯文檔由的維護(hù)很多人說,阮老師已經(jīng)有一本關(guān)于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會promise...... 本書的目的是以目前還在制定中的ECMASc...
閱讀 791·2021-11-22 13:52
閱讀 1592·2021-09-27 13:36
閱讀 2910·2021-09-24 09:47
閱讀 2295·2021-09-22 15:48
閱讀 3657·2021-09-22 15:39
閱讀 1526·2019-08-30 12:43
閱讀 2980·2019-08-29 18:39
閱讀 3263·2019-08-29 12:51