File tree Expand file tree Collapse file tree 2 files changed +38
-2
lines changed Expand file tree Collapse file tree 2 files changed +38
-2
lines changed Original file line number Diff line number Diff line change @@ -26,11 +26,15 @@ var isPromisesAPlusCompliant = true;
26
26
* @constructor
27
27
*/
28
28
export default class ParsePromise {
29
- constructor ( ) {
29
+ constructor ( closure ) {
30
30
this . _resolved = false ;
31
31
this . _rejected = false ;
32
32
this . _resolvedCallbacks = [ ] ;
33
33
this . _rejectedCallbacks = [ ] ;
34
+
35
+ if ( typeof closure === 'function' ) {
36
+ closure ( this . resolve . bind ( this ) , this . reject . bind ( this ) ) ;
37
+ }
34
38
}
35
39
36
40
/**
Original file line number Diff line number Diff line change @@ -430,5 +430,37 @@ describe('Promise', () => {
430
430
expect ( ParsePromise . is ( { } ) ) . toBe ( false ) ;
431
431
expect ( ParsePromise . is ( ParsePromise . as ( ) ) ) . toBe ( true ) ;
432
432
expect ( ParsePromise . is ( ParsePromise . error ( ) ) ) . toBe ( true ) ;
433
- } )
433
+ } ) ;
434
+
435
+ it ( 'can be constructed in ES6 style and resolved' , asyncHelper ( ( done ) => {
436
+ new ParsePromise ( ( resolve , reject ) => {
437
+ resolve ( 'abc' ) ;
438
+ } ) . then ( ( result ) => {
439
+ expect ( result ) . toBe ( 'abc' ) ;
440
+
441
+ return new ParsePromise ( ( resolve , reject ) => {
442
+ resolve ( 'def' ) ;
443
+ } ) ;
444
+ } ) . then ( ( result ) => {
445
+ expect ( result ) . toBe ( 'def' ) ;
446
+ done ( ) ;
447
+ } ) ;
448
+ } ) ) ;
449
+
450
+ it ( 'can be constructed in ES6 style and rejected' , asyncHelper ( ( done ) => {
451
+ new ParsePromise ( ( resolve , reject ) => {
452
+ reject ( 'err' ) ;
453
+ } ) . then ( ( ) => {
454
+ // Should not be reached
455
+ } , ( error ) => {
456
+ expect ( error ) . toBe ( 'err' ) ;
457
+
458
+ return new ParsePromise ( ( resolve , reject ) => {
459
+ reject ( 'err2' ) ;
460
+ } ) ;
461
+ } ) . then ( null , ( error ) => {
462
+ expect ( error ) . toBe ( 'err2' ) ;
463
+ done ( ) ;
464
+ } ) ;
465
+ } ) ) ;
434
466
} ) ;
You can’t perform that action at this time.
0 commit comments