111 lines
4.8 KiB
Plaintext
111 lines
4.8 KiB
Plaintext
import { SchedulerLike } from '../types';
|
|
import { isScheduler } from '../util/isScheduler';
|
|
import { fromArray } from './fromArray';
|
|
import { Observable } from '../Observable';
|
|
import { scheduleArray } from '../scheduled/scheduleArray';
|
|
|
|
/* tslint:disable:max-line-length */
|
|
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
|
|
export function of<T>(a: T, scheduler: SchedulerLike): Observable<T>;
|
|
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
|
|
export function of<T, T2>(a: T, b: T2, scheduler: SchedulerLike): Observable<T | T2>;
|
|
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
|
|
export function of<T, T2, T3>(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable<T | T2 | T3>;
|
|
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
|
|
export function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;
|
|
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
|
|
export function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;
|
|
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
|
|
export function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;
|
|
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
|
|
export function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike):
|
|
Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;
|
|
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
|
|
export function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike):
|
|
Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
|
|
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
|
|
export function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike):
|
|
Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
|
|
export function of<T>(...args: (T | SchedulerLike)[]): Observable<T>;
|
|
|
|
// TODO(benlesh): Update the typings for this when we can switch to TS 3.x
|
|
export function of<T>(a: T): Observable<T>;
|
|
export function of<T, T2>(a: T, b: T2): Observable<T | T2>;
|
|
export function of<T, T2, T3>(a: T, b: T2, c: T3): Observable<T | T2 | T3>;
|
|
export function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4): Observable<T | T2 | T3 | T4>;
|
|
export function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5): Observable<T | T2 | T3 | T4 | T5>;
|
|
export function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable<T | T2 | T3 | T4 | T5 | T6>;
|
|
export function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7):
|
|
Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;
|
|
export function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8):
|
|
Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
|
|
export function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9):
|
|
Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
|
|
export function of<T>(...args: T[]): Observable<T>;
|
|
/* tslint:enable:max-line-length */
|
|
|
|
/**
|
|
* Converts the arguments to an observable sequence.
|
|
*
|
|
* <span class="informal">Each argument becomes a `next` notification.</span>
|
|
*
|
|
* 
|
|
*
|
|
* Unlike {@link from}, it does not do any flattening and emits each argument in whole
|
|
* as a separate `next` notification.
|
|
*
|
|
* ## Examples
|
|
*
|
|
* Emit the values `10, 20, 30`
|
|
*
|
|
* ```ts
|
|
* import { of } from 'rxjs';
|
|
*
|
|
* of(10, 20, 30)
|
|
* .subscribe(
|
|
* next => console.log('next:', next),
|
|
* err => console.log('error:', err),
|
|
* () => console.log('the end'),
|
|
* );
|
|
* // result:
|
|
* // 'next: 10'
|
|
* // 'next: 20'
|
|
* // 'next: 30'
|
|
*
|
|
* ```
|
|
*
|
|
* Emit the array `[1,2,3]`
|
|
*
|
|
* ```ts
|
|
* import { of } from 'rxjs';
|
|
*
|
|
* of([1,2,3])
|
|
* .subscribe(
|
|
* next => console.log('next:', next),
|
|
* err => console.log('error:', err),
|
|
* () => console.log('the end'),
|
|
* );
|
|
* // result:
|
|
* // 'next: [1,2,3]'
|
|
* ```
|
|
*
|
|
* @see {@link from}
|
|
* @see {@link range}
|
|
*
|
|
* @param {...T} values A comma separated list of arguments you want to be emitted
|
|
* @return {Observable} An Observable that emits the arguments
|
|
* described above and then completes.
|
|
* @method of
|
|
* @owner Observable
|
|
*/
|
|
|
|
export function of<T>(...args: Array<T | SchedulerLike>): Observable<T> {
|
|
let scheduler = args[args.length - 1] as SchedulerLike;
|
|
if (isScheduler(scheduler)) {
|
|
args.pop();
|
|
return scheduleArray(args as T[], scheduler);
|
|
} else {
|
|
return fromArray(args as T[]);
|
|
}
|
|
}
|