摘要:研究時,想過自己模擬下這個異步機制,今天封裝了一套簡易代碼線上代碼測試地址為線上測試地址
研究Promise時,想過自己模擬下這個異步機制,今天封裝了一套簡易代碼:
let Pms=null; (function () { function execFn(pms,type,data) { let {[type+"Arr"]:arr,status}=pms; if (status != "pending" ) return; arr.forEach((fn,index)=>{ fn.call(pms, data); }); pms.status= type == "suc"? "fulfilled":"rejected"; pms.args=data; } Pms=class{ constructor(callBack){ this.status="pending"; this.sucArr=[]; this.errorArr=[]; this.args=""; callBack.apply(null, [execFn.bind(null, this,"suc"),execFn.bind(null, this,"error")]); } then(sucFn,errorFn){ this.sucArr.push(sucFn); if (this.status == "fulfilled"){ sucFn.call(this, this.args); } if (typeof errorFn != "undefined"){ this.catch(errorFn); } } catch(errorFn){ this.errorArr.push(errorFn); if (this.status == "rejected"){ errorFn.call(this, this.args); } } } })();
線上代碼測試地址為:
線上測試地址
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/87400.html
摘要:和異步處理調(diào)用訪問數(shù)據(jù)采用的方式,這是一個異步過程,異步過程最基本的處理方式是事件或回調(diào),其實這兩種處理方式實現(xiàn)原理差不多,都需要在調(diào)用異步過程的時候傳入一個在異步過程結(jié)束的時候調(diào)用的接口。 Ajax 和異步處理 調(diào)用 API 訪問數(shù)據(jù)采用的 Ajax 方式,這是一個異步過程,異步過程最基本的處理方式是事件或回調(diào),其實這兩種處理方式實現(xiàn)原理差不多,都需要在調(diào)用異步過程的時候傳入一個在異...
摘要:固有對象由標(biāo)準(zhǔn)規(guī)定,隨著運行時創(chuàng)建而自動創(chuàng)建的對象實例。普通對象由語法構(gòu)造器或者關(guān)鍵字定義類創(chuàng)建的對象,它能夠被原型繼承。 筆記說明 重學(xué)前端是程劭非(winter)【前手機淘寶前端負責(zé)人】在極客時間開的一個專欄,每天10分鐘,重構(gòu)你的前端知識體系,筆者主要整理學(xué)習(xí)過程的一些要點筆記以及感悟,完整的可以加入winter的專欄學(xué)習(xí)【原文有winter的語音】,如有侵權(quán)請聯(lián)系我,郵箱:ka...
摘要:固有對象由標(biāo)準(zhǔn)規(guī)定,隨著運行時創(chuàng)建而自動創(chuàng)建的對象實例。普通對象由語法構(gòu)造器或者關(guān)鍵字定義類創(chuàng)建的對象,它能夠被原型繼承。 筆記說明 重學(xué)前端是程劭非(winter)【前手機淘寶前端負責(zé)人】在極客時間開的一個專欄,每天10分鐘,重構(gòu)你的前端知識體系,筆者主要整理學(xué)習(xí)過程的一些要點筆記以及感悟,完整的可以加入winter的專欄學(xué)習(xí)【原文有winter的語音】,如有侵權(quán)請聯(lián)系我,郵箱:ka...
閱讀 3169·2023-04-25 18:54
閱讀 2667·2021-11-02 14:40
閱讀 3278·2021-09-23 11:58
閱讀 2492·2019-08-30 13:50
閱讀 1292·2019-08-29 12:46
閱讀 3180·2019-08-28 17:51
閱讀 736·2019-08-26 11:47
閱讀 956·2019-08-23 16:17