--- /dev/null
+import { Observable } from '../Observable';
+import { SchedulerLike } from '../types';
+import { Subscription } from '../Subscription';
+
+export function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike) {
+ return new Observable<T>(subscriber => {
+ const sub = new Subscription();
+ let i = 0;
+ sub.add(scheduler.schedule(function () {
+ if (i === input.length) {
+ subscriber.complete();
+ return;
+ }
+ subscriber.next(input[i++]);
+ if (!subscriber.closed) {
+ sub.add(this.schedule());
+ }
+ }));
+ return sub;
+ });
+}