摘要:研究時,想過自己模擬下這個異步機制,今天封裝了一套簡易代碼線上代碼測試地址為線上測試地址
研究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); } } } })();
線上代碼測試地址為:
線上測試地址
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/87400.html
摘要:和異步處理調用訪問數據采用的方式,這是一個異步過程,異步過程最基本的處理方式是事件或回調,其實這兩種處理方式實現原理差不多,都需要在調用異步過程的時候傳入一個在異步過程結束的時候調用的接口。 Ajax 和異步處理 調用 API 訪問數據采用的 Ajax 方式,這是一個異步過程,異步過程最基本的處理方式是事件或回調,其實這兩種處理方式實現原理差不多,都需要在調用異步過程的時候傳入一個在異...
摘要:固有對象由標準規定,隨著運行時創建而自動創建的對象實例。普通對象由語法構造器或者關鍵字定義類創建的對象,它能夠被原型繼承。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完整的可以加入winter的專欄學習【原文有winter的語音】,如有侵權請聯系我,郵箱:ka...
摘要:固有對象由標準規定,隨著運行時創建而自動創建的對象實例。普通對象由語法構造器或者關鍵字定義類創建的對象,它能夠被原型繼承。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完整的可以加入winter的專欄學習【原文有winter的語音】,如有侵權請聯系我,郵箱:ka...
閱讀 3076·2023-04-25 18:54
閱讀 2597·2021-11-02 14:40
閱讀 3189·2021-09-23 11:58
閱讀 2436·2019-08-30 13:50
閱讀 1242·2019-08-29 12:46
閱讀 3125·2019-08-28 17:51
閱讀 683·2019-08-26 11:47
閱讀 906·2019-08-23 16:17