RxJS - MacKittipat/note-developer GitHub Wiki
- It is a library for reactive programming.
- Library for handling asynchronous data stream.
- Promise vs RxJS
- Promise work with single value such as single API call.
- RxJS work with stream of data such as mouse click event.
- Observable is similar to wrapper of stream of data
- https://rxjs.dev/api/index/class/Observable
- It's a collection of item over time.
- Observer :
- Subscriber :
- Subscription :
- Subject :
- https://rxjs-dev.firebaseapp.com/api/index/class/Subject
- Similar to Hot observable
- Hot :
- Multicast
- Allow broadcast same value to multiple subscriber.
- Data is produced outside the Observable
- Cold :
- Unicast. Subscriber receive the same value.
- Don't emit value until it is subscribed.
- Data is produced inside the Observable
const { Observable } = require("rxjs");
let observable = new Observable((subscriber) => {
subscriber.next(1);
subscriber.next(2);
subscriber.complete();
});
let observer = {
next: (item) => {
console.log(item);
},
error: (error) => {
console.log(error);
},
complete: () => {
console.log("Completed.");
},
};
let subscription = observable.subscribe(observer);
subscription.unsubscribe();
Sample :
const { of, from, Observable } = require('rxjs');
const { map, filter } = require('rxjs/operators');
of('hello').subscribe(i => console.log(i));
from('hello').subscribe(i => console.log(i));
let observable = new Observable(subscriber => {
subscriber .next(1);
subscriber .next(2);
subscriber .next(3);
subscriber .complete();
})
let subscription = observable.subscribe(i => {
console.log(i);
})
Reference :