1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { scheduleObservable } from './scheduleObservable';
- import { schedulePromise } from './schedulePromise';
- import { scheduleArray } from './scheduleArray';
- import { scheduleIterable } from './scheduleIterable';
- import { scheduleAsyncIterable } from './scheduleAsyncIterable';
- import { isInteropObservable } from '../util/isInteropObservable';
- import { isPromise } from '../util/isPromise';
- import { isArrayLike } from '../util/isArrayLike';
- import { isIterable } from '../util/isIterable';
- import { ObservableInput, SchedulerLike } from '../types';
- import { Observable } from '../Observable';
- import { isAsyncIterable } from '../util/isAsyncIterable';
- import { createInvalidObservableTypeError } from '../util/throwUnobservableError';
- import { isReadableStreamLike } from '../util/isReadableStreamLike';
- import { scheduleReadableStreamLike } from './scheduleReadableStreamLike';
- /**
- * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions
- * are scheduled on the provided scheduler.
- *
- * @see {@link from}
- * @see {@link of}
- *
- * @param input The observable, array, promise, iterable, etc you would like to schedule
- * @param scheduler The scheduler to use to schedule the subscription and emissions from
- * the returned observable.
- */
- export function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T> {
- if (input != null) {
- if (isInteropObservable(input)) {
- return scheduleObservable(input, scheduler);
- }
- if (isArrayLike(input)) {
- return scheduleArray(input, scheduler);
- }
- if (isPromise(input)) {
- return schedulePromise(input, scheduler);
- }
- if (isAsyncIterable(input)) {
- return scheduleAsyncIterable(input, scheduler);
- }
- if (isIterable(input)) {
- return scheduleIterable(input, scheduler);
- }
- if (isReadableStreamLike(input)) {
- return scheduleReadableStreamLike(input, scheduler);
- }
- }
- throw createInvalidObservableTypeError(input);
- }
|