1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 1 4 3 1 1 3 3 3 4 | import {root} from '../util/root'; export function toPromise<T>(PromiseCtor?: PromiseConstructor): Promise<T> { if (!PromiseCtor) { Eif (root.Rx && root.Rx.config && root.Rx.config.Promise) { PromiseCtor = root.Rx.config.Promise; } else if (root.Promise) { PromiseCtor = root.Promise; } } Iif (!PromiseCtor) { throw new Error('no Promise impl found'); } return new PromiseCtor((resolve, reject) => { let value: any; this.subscribe(x => value = x, err => reject(err), () => resolve(value)); }); } |