69829f3d82bd0bc5b6992bb21923c039a2c1f9826b8b811ddd25a6cb320e3ea975f7388fc54be4e24ff8c786ed32e0027778be0bf4091709396c48b2c6daef 655 B

123456789101112131415161718192021
  1. import { Observable } from '../Observable';
  2. import { SchedulerLike } from '../types';
  3. import { Subscription } from '../Subscription';
  4. export function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike) {
  5. return new Observable<T>(subscriber => {
  6. const sub = new Subscription();
  7. sub.add(scheduler.schedule(() => input.then(
  8. value => {
  9. sub.add(scheduler.schedule(() => {
  10. subscriber.next(value);
  11. sub.add(scheduler.schedule(() => subscriber.complete()));
  12. }));
  13. },
  14. err => {
  15. sub.add(scheduler.schedule(() => subscriber.error(err)));
  16. }
  17. )));
  18. return sub;
  19. });
  20. }