成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

實(shí)現(xiàn)Promise基本原理

wmui / 2108人閱讀

摘要:先把的回調(diào)先到數(shù)組,然后在調(diào)用該回調(diào)鏈?zhǔn)秸{(diào)用,一個(gè)簡(jiǎn)單是實(shí)現(xiàn)原理,方法中使用,為的是鏈?zhǔn)秸{(diào)用,首次遍歷數(shù)組時(shí),下標(biāo)為,傳入到首次的返回結(jié)果。如果有錯(cuò)請(qǐng)各位多多指點(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
}),

一個(gè)簡(jiǎn)單是實(shí)現(xiàn)原理,resolve方法中使用reduce,為的是鏈?zhǔn)秸{(diào)用,首次遍歷callback數(shù)組時(shí),下標(biāo)為 1,傳入到首次的返回結(jié)果。
如果有錯(cuò)請(qǐng)各位多多指點(diǎn),勿噴,

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/101247.html

相關(guān)文章

  • Promise 基本原理 & 異步

    摘要:追加在本輪循環(huán)的異步任務(wù)追加在次輪循環(huán)的異步任務(wù)規(guī)定,和的回調(diào)函數(shù),追加在本輪循環(huán),即同步任務(wù)一旦執(zhí)行完成,就開(kāi)始執(zhí)行它們。 author: 陳家賓 email: [email protected] date: 2018/2/23 Promise 基本實(shí)現(xiàn) var PENDING = 0; var FULFILLED = 1; var REJECTED = 2; function Pr...

    mtunique 評(píng)論0 收藏0
  • 解析 Promise 原理,實(shí)現(xiàn)一個(gè)Promise

    摘要:解析原理,實(shí)現(xiàn)一個(gè)概述這篇文章旨在解析的異步實(shí)現(xiàn)原理,并且以中的為藍(lán)本實(shí)現(xiàn)一個(gè)簡(jiǎn)單的。具體的規(guī)范可以參見(jiàn)細(xì)節(jié)構(gòu)造器中必須傳入函數(shù),否則會(huì)拋出錯(cuò)誤。中的回調(diào)返回值會(huì)影響返回的對(duì)象。執(zhí)行器傳入構(gòu)造器的為函數(shù),并且在構(gòu)造時(shí)就會(huì)執(zhí)行。 解析 Promise 原理,實(shí)現(xiàn)一個(gè)Promise 概述 這篇文章旨在解析 Promise的異步實(shí)現(xiàn)原理,并且以 ES6中的 Promise 為藍(lán)本實(shí)現(xiàn)一個(gè)簡(jiǎn)單...

    silenceboy 評(píng)論0 收藏0
  • Promise之深入淺出

    摘要:不兼容問(wèn)題,本文不予以處理,出門(mén)左轉(zhuǎn),找谷哥。如果中的回調(diào)函數(shù)拋出一個(gè)錯(cuò)誤,那么返回的將會(huì)成為拒絕狀態(tài),并且將拋出的錯(cuò)誤作為拒絕狀態(tài)的回調(diào)函數(shù)的參數(shù)值。 Promise與async 主要內(nèi)容: promise基本實(shí)現(xiàn)原理 promise 使用中難點(diǎn)(鏈?zhǔn)秸{(diào)用,API基本上返回都是一個(gè)新Promise,及參數(shù)傳遞) promise 對(duì)異常處理 參考: ? 30分鐘,讓你徹底明...

    littleGrow 評(píng)論0 收藏0
  • JavaScript 異步

    摘要:從最開(kāi)始的到封裝后的都在試圖解決異步編程過(guò)程中的問(wèn)題。為了讓編程更美好,我們就需要引入來(lái)降低異步編程的復(fù)雜性。寫(xiě)一個(gè)符合規(guī)范并可配合使用的寫(xiě)一個(gè)符合規(guī)范并可配合使用的理解的工作原理采用回調(diào)函數(shù)來(lái)處理異步編程。 JavaScript怎么使用循環(huán)代替(異步)遞歸 問(wèn)題描述 在開(kāi)發(fā)過(guò)程中,遇到一個(gè)需求:在系統(tǒng)初始化時(shí)通過(guò)http獲取一個(gè)第三方服務(wù)器端的列表,第三方服務(wù)器提供了一個(gè)接口,可通過(guò)...

    tuniutech 評(píng)論0 收藏0
  • ES6-7

    摘要:的翻譯文檔由的維護(hù)很多人說(shuō),阮老師已經(jīng)有一本關(guān)于的書(shū)了入門(mén),覺(jué)得看看這本書(shū)就足夠了。前端的異步解決方案之和異步編程模式在前端開(kāi)發(fā)過(guò)程中,顯得越來(lái)越重要。為了讓編程更美好,我們就需要引入來(lái)降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(shū)(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會(huì)promise...... 本書(shū)的目的是以目前還在制定中的ECMASc...

    mudiyouyou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<