0.7.4 • Published 2 years ago

rxjs-nano v0.7.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

rxjs-nano

test: passed license: MIT

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);
});
0.7.4

2 years ago

0.7.3

2 years ago

0.7.2

2 years ago

0.7.1

2 years ago

0.7.0

2 years ago