话不多说,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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。