rxjs
Version:
Reactive Extensions for modern JavaScript
24 lines (22 loc) • 658 B
text/typescript
/** @prettier */
import { Observable } from '../Observable';
import { SchedulerLike } from '../types';
export function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike) {
return new Observable<T>((subscriber) => {
return scheduler.schedule(() =>
input.then(
(value) => {
subscriber.add(
scheduler.schedule(() => {
subscriber.next(value);
subscriber.add(scheduler.schedule(() => subscriber.complete()));
})
);
},
(err) => {
subscriber.add(scheduler.schedule(() => subscriber.error(err)));
}
)
);
});
}