refactor(Observable): implement toPromise and fromPromise without side effects
BREAKING CHANGE: toPromise is no longer an instance method of the `Observable` returned by Angular, and fromPromise is no longer available as a static method. The easiest way to account for this change in applications is to import the auto-patching modules from rxjs, which will automatically add these operators back to the Observable prototype. ``` import 'rxjs/add/operator/toPromise'; import 'rxjs/add/observable/fromPromise'; ``` Closes #5542 Closes #5626
This commit is contained in:
@@ -9,13 +9,11 @@ import {Observable as RxObservable} from 'rxjs/Observable';
|
||||
import {Subscription} from 'rxjs/Subscription';
|
||||
import {Operator} from 'rxjs/Operator';
|
||||
|
||||
import 'rxjs/observable/fromPromise';
|
||||
import 'rxjs/operators/toPromise';
|
||||
import {PromiseObservable} from 'rxjs/observable/fromPromise';
|
||||
import {toPromise} from 'rxjs/operator/toPromise';
|
||||
|
||||
export {Subject} from 'rxjs/Subject';
|
||||
|
||||
|
||||
|
||||
export namespace NodeJS {
|
||||
export interface Timer {}
|
||||
}
|
||||
@@ -62,10 +60,10 @@ export class ObservableWrapper {
|
||||
static callComplete(emitter: EventEmitter<any>) { emitter.complete(); }
|
||||
|
||||
static fromPromise(promise: Promise<any>): Observable<any> {
|
||||
return RxObservable.fromPromise(promise);
|
||||
return PromiseObservable.create(promise);
|
||||
}
|
||||
|
||||
static toPromise(obj: Observable<any>): Promise<any> { return (<any>obj).toPromise(); }
|
||||
static toPromise(obj: Observable<any>): Promise<any> { return toPromise.call(obj); }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user