5
话不多说,show you my code
/**  
 * IIFE 
 */
 (function (window) {  
  
  /**  
   * Promise的构造器函数 
   * @param executor 同步执行器函数  
   * @constructor  
   */  
  function Promise(executor) {  
  
  }  
  
  /**  
   * Promise原型对象的then() 
   * @param onResolved 成功回调  
   * @param onRejected 失败回调  
   * @return 一个新的Promise对象  
   */  
 Promise.prototype.then = function (onResolved, onRejected) {  
  
  }  
 
  /**  
   * Promise原型对象的catch() 
   * @param onRejected 失败回调  
   * @return 一个新的Promise对象  
   */  
 Promise.prototype.catch = function (onRejected) {  
  
  }  
  
  /**  
   * Promise函数对象的resolve 
   * @param value 成功的返回  
   * @return 返回一个指定value的成功的Promise对象  
   */  
 Promise.resolve = function (value) {  
  
  }  
  
  /**  
   * Promise函数对象的reject 
   * @param value 失败的返回  
   * @return 返回一个指定reason的失败的Promise对象  
   */  
 Promise.reject = function (reason) {  
  
  }  
  
  /**  
   * Promise函数对象的all 
   * @param promises 数组/promise对象的数组  
   * @return 只有全部promise都成功了才成功  
   */  
 Promise.all = function (promises) {  
  
  }  
  
  /**  
   * Promise函数对象的race 
   * @param promises 数组/promise对象的数组  
   * @return 返回一个promise对象,其结果由第一个完成的promise决定  
   */ 
 Promise.race = function (promises) {  
  
  }  
  
  //向外暴露Promise  
  window.Promise = Promise  
})(window)
代码已同步更新到github上

https://github.com/hnt815/promise

Promise系列文章

Promise从两眼发懵到双眼放光(1)-准备篇
Promise从两眼发懵到双眼放光(2)-Promise基础
Promise从两眼发懵到双眼放光(3)-Promise的几个关键问题(一)
Promise从两眼发懵到双眼放光(4)-Promise的几个关键问题(二)
Promise从两眼发懵到双眼放光(5)-手写Promise之整体结构
Promise从两眼发懵到双眼放光(6)-手写Promise之构造函数
Promise从两眼发懵到双眼放光(7)-手写Promise之then方法和catch方法
Promise从两眼发懵到双眼放光(8)-手写Promise之resolve,reject,all,race方法
Promise从两眼发懵到双眼放光(9)-async和await


ntyang
165 声望29 粉丝

非典型性代码搬运工,搞点儿事情