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