--- /dev/null
+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;
+ });
+}