手写Promise之Promise整体架构


自定义 Promise 函数

ES5 中模块定义方法:匿名函数自调用(或者自调用函数表达式或者函数表达式自调用)即 IIFE

  1. Promise 构造函数

  2. Promise 原型对象的 then()

  3. Promise 原型对象的 catch()

  4. Promise 函数对象方法 resolve()

  5. Promise 函数对象方法 reject()

  6. Promise 函数对象的 all 方法

  7. Promise 函数对象的 race 方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
* 自定义Promise函数 模块
* ES5中模块定义方法:匿名函数自调用(或者自调用函数表达式或者函数表达式自调用)即IIFE
*/
(function (window) {
/**
* Promise构造函数
* excutor:执行器函数(同步执行)
*/
function Promise(excutor) {

}
/**
* Promise原型对象的then()
* 指定成功和失败的回调函数
* 返回一个新的Promise对象
*/
Promise.prototype.then = function (onResolved, onRejected) {

}

/**
* Promise原型对象的catch()
* 指定失败的回调函数
* 返回一个新的Promise对象
*/
Promise.prototype.catch = function (onRejected) {

}
/**
* Promise函数对象方法 resolve()
* 返回一个指定结果的成功的promise
*/
Promise.resolve(value){

}
/**
* Promise函数对象方法reject()
* 返回一个指定reason的失败的promise
*/
Promise.reject(reason){

}
/**
* Promise函数对象的all方法
* 返回一个promise,只有当所有promise都成功时才成功,否则只要有一个失败的就失败
*/
Promise.all = function (promises) { }
/**
* Promise函数对象的race方法
* 返回一个promise,其结果由第一个完成的promise决定
*/
Promise.race = function (promises) {

}

//向外暴露Promise函数
window.Promise = Promise;


})(window)

文章作者: AlfaLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AlfaLee !
  目录