Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object.
from<T>(input: ObservableInput<T>, scheduler?: SchedulerLike): Observable<T>
Parameters
input |
Type: ObservableInput .
|
scheduler |
Optional. Default is undefined .
Type: SchedulerLike .
|
Returns
Observable<T>
:
Description
Converts almost anything to an Observable.
from
converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an
iterable
object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated
as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be
converted through this operator.
Examples
Converts an array to an Observable
import { from } from 'rxjs/observable/from';
const array = [10, 20, 30];
const result = from(array);
result.subscribe(x => console.log(x));
// Logs:
// 10 20 30
Convert an infinite iterable (from a generator) to an Observable
import { take } from 'rxjs/operators';
import { from } from 'rxjs/observable/from';
function* generateDoubles(seed) {
let i = seed;
while (true) {
yield i;
i = 2 * i; // double it
}
}
const iterator = generateDoubles(3);
const result = from(iterator).pipe(take(10));
result.subscribe(x => console.log(x));
// Logs:
// 3 6 12 24 48 96 192 384 768 1536
with async scheduler
import { from } from 'rxjs/observable/from';
import { async } from 'rxjs/scheduler/async';
console.log('start');
const array = [10, 20, 30];
const result = from(array, async);
result.subscribe(x => console.log(x));
console.log('end');
// Logs:
// start end 10 20 30