File tree Expand file tree Collapse file tree 1 file changed +2
-18
lines changed Expand file tree Collapse file tree 1 file changed +2
-18
lines changed Original file line number Diff line number Diff line change 1
1
/**
2
2
* 仅实现异步链式调用的简化版
3
3
*/
4
-
5
4
function Promise ( excutor ) {
6
5
var self = this
7
- self . status = "pending" // Promise当前的状态
8
- self . data = undefined // Promise的值
9
6
self . onResolvedCallback = [ ] // Promise resolve时的回调函数集,因为在Promise结束之前有可能有多个回调添加到它上面
10
7
11
8
function resolve ( value ) {
12
- setTimeout ( ( ) => {
13
- if ( self . status === "pending" ) {
14
- self . status = "resolved"
15
- self . data = value
16
- self . onResolvedCallback . forEach ( callback => callback ( value ) )
17
- }
18
- } )
9
+ self . data = value
10
+ self . onResolvedCallback . forEach ( callback => callback ( value ) )
19
11
}
20
12
21
13
excutor ( resolve . bind ( self ) )
@@ -49,12 +41,4 @@ new Promise(resolve => {
49
41
} , 500 )
50
42
} )
51
43
} )
52
- . then ( res => {
53
- console . log ( res )
54
- return new Promise ( resolve => {
55
- setTimeout ( ( ) => {
56
- resolve ( 3 )
57
- } , 500 )
58
- } )
59
- } )
60
44
. then ( console . log )
You can’t perform that action at this time.
0 commit comments