diff --git a/src/operator/toPromise.ts b/src/operator/toPromise.ts index 5a51312657..7fe0fe16f7 100644 --- a/src/operator/toPromise.ts +++ b/src/operator/toPromise.ts @@ -4,6 +4,7 @@ import { toPromise as higherOrder } from '../operators/toPromise'; /* tslint:disable:max-line-length */ export function toPromise(this: Observable): Promise; export function toPromise(this: Observable, PromiseCtor: typeof Promise): Promise; +export function toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise; /* tslint:enable:max-line-length */ /** @@ -55,6 +56,6 @@ export function toPromise(this: Observable, PromiseCtor: typeof Promise): * @method toPromise * @owner Observable */ -export function toPromise(this: Observable, PromiseCtor?: typeof Promise): Promise { +export function toPromise(this: Observable, PromiseCtor?: PromiseConstructorLike): Promise { return higherOrder(PromiseCtor)(this) as Promise; } diff --git a/src/operators/toPromise.ts b/src/operators/toPromise.ts index 0e3fedaff4..fc1996647b 100644 --- a/src/operators/toPromise.ts +++ b/src/operators/toPromise.ts @@ -5,6 +5,7 @@ import { UnaryFunction } from '../interfaces'; /* tslint:disable:max-line-length */ export function toPromise(): UnaryFunction, Promise>; export function toPromise(PromiseCtor: typeof Promise): UnaryFunction, Promise>; +export function toPromise(PromiseCtor: PromiseConstructorLike): UnaryFunction, Promise>; /* tslint:enable:max-line-length */ /** @@ -56,7 +57,7 @@ export function toPromise(PromiseCtor: typeof Promise): UnaryFunction(PromiseCtor?: typeof Promise): UnaryFunction, Promise> { +export function toPromise(PromiseCtor?: PromiseConstructorLike): UnaryFunction, Promise> { return (source: Observable) => { if (!PromiseCtor) { if (root.Rx && root.Rx.config && root.Rx.config.Promise) { @@ -73,6 +74,6 @@ export function toPromise(PromiseCtor?: typeof Promise): UnaryFunction { let value: any; source.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value)); - }); + }) as Promise; }; }