@@ -11,7 +11,9 @@ import { HttpStatus, ExecutionContext, NestInterceptor } from '@nestjs/common';
1111import { Observable } from 'rxjs/Observable' ;
1212import 'rxjs/add/operator/toPromise' ;
1313import 'rxjs/add/observable/defer' ;
14+ import 'rxjs/add/observable/fromPromise' ;
1415import 'rxjs/add/operator/take' ;
16+ import 'rxjs/add/operator/switchMap' ;
1517
1618export class InterceptorsConsumer {
1719 public async intercept (
@@ -25,7 +27,7 @@ export class InterceptorsConsumer {
2527 return await ( await next ( ) ) ;
2628 }
2729 const context = this . createContext ( instance , callback ) ;
28- const start$ = Observable . defer ( async ( ) => await this . transformDeffered ( next ) ) ;
30+ const start$ = Observable . defer ( ( ) => this . transformDeffered ( next ) ) ;
2931 const result$ = await interceptors . reduce (
3032 async ( stream$ , interceptor ) =>
3133 await interceptor . intercept ( dataOrRequest , context , await stream$ ) ,
@@ -44,9 +46,11 @@ export class InterceptorsConsumer {
4446 } ;
4547 }
4648
47- public async transformDeffered ( next : ( ) => any ) : Promise < any > {
48- const res = await next ( ) ;
49- const isDeffered = res instanceof Promise || res instanceof Observable ;
50- return isDeffered ? res : Promise . resolve ( res ) ;
49+ public transformDeffered ( next : ( ) => Promise < any > ) : Observable < any > {
50+ return Observable . fromPromise ( next ( ) )
51+ . switchMap ( ( res ) => {
52+ const isDeffered = res instanceof Promise || res instanceof Observable ;
53+ return isDeffered ? res : Promise . resolve ( res ) ;
54+ } ) ;
5155 }
5256}
0 commit comments