File tree Expand file tree Collapse file tree 1 file changed +19
-2
lines changed Expand file tree Collapse file tree 1 file changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -51,8 +51,25 @@ MyPromise.prototype.then = function (onFulfilled, onRejected) {
51
51
onRejected = typeof onRejected === 'function' ? onRejected :function ( err ) {
52
52
throw err ;
53
53
}
54
- let promise2 = new Promise ( ( resolve , reject ) => {
55
- // todo
54
+ let promise2 = new MyPromise ( ( resolve , reject ) => {
55
+ if ( _this . state === FULFILLED ) {
56
+ let x = onFilfulled ( _this . value ) ;
57
+ resolvePromise ( promise2 , x , resolve , reject ) ;
58
+ }
59
+ if ( _this . state === REJECTED ) {
60
+ let x = onRejected ( _this . reason ) ;
61
+ resolvePromise ( promise2 , x , resolve , reject ) ;
62
+ }
63
+ if ( _this . state === PENDING ) {
64
+ _this . onFilFulledCallbacks . push ( function ( ) {
65
+ let x = onFilfulled ( _this . value ) ;
66
+ resolvePromise ( promise2 , x , resolve , reject ) ;
67
+ } ) ;
68
+ _this . onRejectedCallbacks . push ( function ( ) {
69
+ let x = onRejected ( _this . reason ) ;
70
+ resolvePromise ( promise2 , x , resolve , reject ) ;
71
+ } ) ;
72
+ }
56
73
} ) ;
57
74
return promise2 ;
58
75
} ;
You can’t perform that action at this time.
0 commit comments