0.7.4 • Published 2 years ago
rxjs-nano v0.7.4
rxjs-nano
API
Observable
The Observable type is an interface. To instantiate an Observable use a function observable
.
import { observable, Observable } from "rxjs-nano";
const second: Observable<void> = observable(({ complete }) => {
const id = setTimeout(complete, 1000);
return () => clearTimeout(id);
});
observable.subscribe({
complete() {
// ...
},
});
Every types implements an Observable.
import { Event, Memo, observable, Observable, Store } from "rxjs-nano";
const observableA: Observable<number> = observable(({ next, complete }) => {
next(1);
complete();
});
const observableB: Observable<number> = new Event();
const observableC: Observable<number> = new Memo();
const observableD: Observable<number> = new Store(1);
Event
An Event is the same as an RxJS Subject
import { Event } from "rxjs-nano";
const event = new Event<string>();
event.subscribe(console.log);
event.emit("text");
Store
A Store is the same as an RxJS BehaviorSubject
import { Store } from "rxjs-nano";
const store = new Store(1);
store.subscribe(console.log);
store.next(42);
console.assert(store.value === 42);
Memo
A Memo is between of an Event and a Store. It store a value, but hasn't an initial value and hasn't an value accessor.
import { Memo } from "rxjs-nano";
const data = new Memo();
data.subscribe((value) => {
// called after an initial value has been emitted
console.log("observerA:", value);
});
data.next(1);
data.subscribe((value) => {
// a value has been emitted so this handler called immediately
console.log("observerB:", value);
});