保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { Observable } from '../Observable';
import { SchedulerLike } from '../types';
import { Subscription } from '../Subscription';
 
export function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike) {
  return new Observable<T>(subscriber => {
    const sub = new Subscription();
    sub.add(scheduler.schedule(() => input.then(
      value => {
        sub.add(scheduler.schedule(() => {
          subscriber.next(value);
          sub.add(scheduler.schedule(() => subscriber.complete()));
        }));
      },
      err => {
        sub.add(scheduler.schedule(() => subscriber.error(err)));
      }
    )));
    return sub;
  });
}