📖 About
Automatically re-evaluate an expression whenever Observable in it emits
🔗 Links:
See the homepage: github.com/kosich/rxjs-autorun
Read an intro article: "RxJS Autorun Intro"
📦 Install:
npm i rxjs-autorun
🛸 Examples
Simple mapping
computed will run the () => a + '!' expression whenever a emits a distinctive value:
12345678910const { rxObserver } = require('api/v0.3'); const { timer } = require('rxjs'); const { computed, $ } = require('rxjs-autorun'); const a = timer(100); // 0 in 100ms const c = computed(() => $(a) + '!️'); a.subscribe(rxObserver('a')); c.subscribe(rxObserver('a + !'));
Combine two streams
computed will run the () => a + b expression whenever a or b emit a distinctive value:
1234567891011121314const { rxObserver } = require('api/v0.3'); const { timer, of } = require('rxjs'); const { map } = require('rxjs/operators'); const { computed, $, _ } = require('rxjs-autorun'); const a = timer(0, 100); // 0, 1, 2, … const b = timer(0, 330).pipe(map(i => i % 2 ? '🐇' : '🦔' )); // 🦔, 🐇, 🦔, … const c = computed(() => $(a) + $(b)); a.subscribe(rxObserver('a')); b.subscribe(rxObserver('b')); c.subscribe(rxObserver('a + b'));⚠️ Execution time is limited to 1000ms
Combine a with latest b
computed will run the () => a + b expression whenever a emits a distinctive value, with latest value from b:
1234567891011121314const { rxObserver } = require('api/v0.3'); const { timer, of } = require('rxjs'); const { map } = require('rxjs/operators'); const { computed, $, _ } = require('rxjs-autorun'); const a = timer(0, 100); // 0, 1, 2, … const b = timer(0, 330).pipe(map(i => i % 2 ? '🐇' : '🦔' )); // 🦔, 🐇, 🦔, … const c = computed(() => $(a) + _(b)); a.subscribe(rxObserver('a')); b.subscribe(rxObserver('b')); c.subscribe(rxObserver('a + latest b'));⚠️ Execution time is limited to 1000ms
🛠 Check out the docs for more: github.com/kosich/rxjs-autorun
This is one of my libs that I'd like to share with you