AimWhy / micro-observable

RxJS6-style observables in less than 1kb

Home Page:https://mike-north.github.io/micro-observable/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

micro-observable

RxJS6-style observables in less than 1kb, with code taken from RxJS, toy-rx and more!

Build Status Version

Setup

npm install -D micro-observable

Use

import { Observable, map, filter } from 'micro-observable';

let myObs = Observable.create(observer => { // Create an observable
  let x = 0;
  let y = setInterval(() => {
    observer.next(x++); // that emits incrementing values
  }, 1000); // each second
  return function cleanup() {
    clearInterval(y); // and cleans up after its self
  }
}).pipe(
  map(x => x * x), // square each member
  filter(x => x % 3 === 0) // keep only those that are multiples of 3
);

let s = myObs.subscribe(x => {
  console.log(x);
});

setTimeout(() => {
  s.unsubscribe(); // unsubscribe
}, 10000); // after 10s

Is this equivalent to RxJS?

Absolutely not. There are tons of edge and corner cases that this library doesn't aim to handle. micro-observable is great for simple producers and consumers, where a full-blown FRP library would be overkill.


(c) 2018

About

RxJS6-style observables in less than 1kb

https://mike-north.github.io/micro-observable/

License:MIT License


Languages

Language:TypeScript 91.2%Language:JavaScript 7.1%Language:HTML 1.8%