Reactive programming using Observables. Easy to compose async or callback based code
Set of operators to transform, filter, and combine streams of data. Declarative programming
Stream of data over time. Emit multiple values async.
Observable.create()
of(obj)
,from(obj)
,interval()
Consumes values emitted from observables.
subscribe()
uses a callback- Import
{of}
from 'rxjs'
const observable = of(1, 2, 3);
observable.subscribe(
value => console.log(value),
error => console.log(error),
() => console.log('Complete')
);
- Map
- Filter
- Take
- Merge
- Concat
- SwitchMap
Operators use pipe syntax.
Map operator takes the emitted value as input and performs a transformation on it, emitting the transformed value.
Filter takes the emitted value and emits that value if a certain condition is true.
Concat combines multiple observables sequentially, waiting for each one to complete before moving to the next.
const source1 = of(1, 2);
const source2 = of(3, 4);
const result = concat(source1, source2);
result.subscribe(value => console.log(value)); // 1, 2, 3, 4
Merge combines multiple observables async, completing in order each observable complete
Const source1 = of(1,2);
Const source2 = of(3,4);
Const result = concat(source1, source2);
result.subscribe(value => console.log(value) //1,3,2,4
observable.pipe(
filter(value => value%2 === 0)
map(value => value * 2)
).subscribe(value => console.log(value)
Order of operators determine the sequence of transformations Operators are composed using pipe method to chain multiple transformers Data flows left to right. Each operator processing se quencially
Both observables and observers. Used to multicast next(), error(), complete() are used to emit or complete the stream Subject, BehaviourSubject, ReplaySubject, AsyncSubject
Import {Subject} from ‘rxjs’
Const subject = new Subject<number>();
subject.subscribe(value => console.log(‘subscriber 1’, value);
subject.subscribe(value => console.log(‘subscriber 2’, value);
subject.next(1)
subject.next(2)
—---
Combines emission of multiple observables and wait for all to complete. Emits last value for each in the same order provided.
Const source1 = of(1,2,3)
Cons source2 = of(‘A’, ‘B’, ‘C’);
forkJoin([source1, source2]).subscribe(res => console.log(res)};
// [3, ‘C’]
Combines emission of multiple observables into array of projection. Emit value time any of its provided observables emit value, Combines the latest emitted values from each observable
Const source1 = of(1,2,3)
Cons source2 = of(‘A’, ‘B’, ‘C’);
forkJoin([source1, source2]).subscribe(([s1, s2]) => console.log(s1, s2)};
// 1, ‘A’
// 2, ‘A’
// 2, ‘B’
Combines emission of multiple observables and emit once every source observable emit
Combines emission… emit values as they arrive from any observable