资讯专栏INFORMATION COLUMN

实现Promise基本原理

wmui / 2015人阅读

摘要:先把的回调先到数组,然后在调用该回调链式调用,一个简单是实现原理,方法中使用,为的是链式调用,首次遍历数组时,下标为,传入到首次的返回结果。如果有错请各位多多指点,勿喷,

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,传入到首次的返回结果。
如果有错请各位多多指点,勿喷,

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101247.html

相关文章

  • Promise 基本原理 & 异步

    摘要:追加在本轮循环的异步任务追加在次轮循环的异步任务规定,和的回调函数,追加在本轮循环,即同步任务一旦执行完成,就开始执行它们。 author: 陈家宾 email: 617822642@qq.com date: 2018/2/23 Promise 基本实现 var PENDING = 0; var FULFILLED = 1; var REJECTED = 2; function Pr...

    mtunique 评论0 收藏0
  • 解析 Promise 原理实现一个Promise

    摘要:解析原理,实现一个概述这篇文章旨在解析的异步实现原理,并且以中的为蓝本实现一个简单的。具体的规范可以参见细节构造器中必须传入函数,否则会抛出错误。中的回调返回值会影响返回的对象。执行器传入构造器的为函数,并且在构造时就会执行。 解析 Promise 原理,实现一个Promise 概述 这篇文章旨在解析 Promise的异步实现原理,并且以 ES6中的 Promise 为蓝本实现一个简单...

    silenceboy 评论0 收藏0
  • Promise之深入浅出

    摘要:不兼容问题,本文不予以处理,出门左转,找谷哥。如果中的回调函数抛出一个错误,那么返回的将会成为拒绝状态,并且将抛出的错误作为拒绝状态的回调函数的参数值。 Promise与async 主要内容: promise基本实现原理 promise 使用中难点(链式调用,API基本上返回都是一个新Promise,及参数传递) promise 对异常处理 参考: ​ 30分钟,让你彻底明...

    littleGrow 评论0 收藏0
  • JavaScript 异步

    摘要:从最开始的到封装后的都在试图解决异步编程过程中的问题。为了让编程更美好,我们就需要引入来降低异步编程的复杂性。写一个符合规范并可配合使用的写一个符合规范并可配合使用的理解的工作原理采用回调函数来处理异步编程。 JavaScript怎么使用循环代替(异步)递归 问题描述 在开发过程中,遇到一个需求:在系统初始化时通过http获取一个第三方服务器端的列表,第三方服务器提供了一个接口,可通过...

    tuniutech 评论0 收藏0
  • ES6-7

    摘要:的翻译文档由的维护很多人说,阮老师已经有一本关于的书了入门,觉得看看这本书就足够了。前端的异步解决方案之和异步编程模式在前端开发过程中,显得越来越重要。为了让编程更美好,我们就需要引入来降低异步编程的复杂性。 JavaScript Promise 迷你书(中文版) 超详细介绍promise的gitbook,看完再不会promise...... 本书的目的是以目前还在制定中的ECMASc...

    mudiyouyou 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<