参考 Promises/A+, 实现一个Promise
定义状态
1 | // define three states |
version#0 (resolve/reject时变更状态)
1 | class MyPromise { |
version#1(Promise.resolve, Promise.reject实现)
1 | class MyPromise { |
version#2 (实现 then 方法)
1 | class MyPromise { |
version#3 (实现try捕获错误)
1 | class MyPromise { |
version#4 (实现 catch 方法, 翻转then)
1 | class MyPromise { |
version#5 (忽略连续调用 resolve 和 reject)
1 | class MyPromise { |
version#6 (返回 Promise)
1 | class MyPromise { |
version#7
1 | const PENDING = 0 |
增强 MyPromise , 添加一些方法 MyPromise.all, MyPromise.race
1 | class MyPromise { |
参考
promisejs/Implementing
Promises/A+
Implementing JavaScript Promise in 70 lines of code!