promise核心6 自定义promise

1.定义整体结构(不写实现)

定义一个自己的promise的库 lib(库的简写)

一个js文件。一个js模块(不能用es6  也不能commjs)(用es5模块语法 )

匿名函数自调用。IIFE

(function (window) {
  function Promise(excutor) {
  }
  //成功失败时候调用的回调函数,返回一个新的promise对象
  Promise.prototype.then = function(onResoled, onRejected) {}
  Promise.prototype.catch = function(onRejected) {}
  //返回一个成功的promise,值为value(指定结果的返回)
  Promise.resove = function(value) {}
  Promise.reject = function(reason) {}
  //返回一个promise,所有promise都成功才成功
  Promise.all = function(promises) {}
  //返回一个promise 结果由第一个完成的promise来确定(无论成功失败)
  Promise.race = function(promises) {}
  //向外暴露promise
  window.Promise = Promise
})(window)

因为要写一个测试页面  其他模块化语法需要转译

2.把promise构造函数实现

3.把任何catch then 实现

4.简洁语法的实现

5.all() race()实现

6.自定义语法实现

7.es5 function版本

8.es6 class版本

猜你喜欢

转载自www.cnblogs.com/-constructor/p/12227610.html