Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
Pojďme to probrat

RxJS: reaktivní programování v JavaScriptu

17. 10. 2016 2 min čtení CORE SYSTEMSdevelopment

RxJS (Reactive Extensions for JavaScript) přináší observables, operátory a reaktivní paradigma. Klíčová závislost Angularu 2 a mocný nástroj pro asynchronní kód.

Proč reaktivní programování

Moderní webové aplikace jsou inherentně asynchronní — uživatelské interakce, HTTP requesty, WebSocket zprávy, timery. Callback hell a Promise chains se stávají neudržitelnými.

Reaktivní programování modeluje asynchronní data jako proudy (streams) — sekvence hodnot v čase. RxJS poskytuje nástroje pro composing, filtering a transformaci těchto proudů.

Observables a operátory

Observable je lazy push collection — produkuje hodnoty v čase:

import { Observable } from 'rxjs';
import { map, filter, debounceTime, switchMap } from 'rxjs/operators';

// Typeahead search
const search$ = Observable.fromEvent(searchInput, 'input')
  .pipe(
    map(e => e.target.value),
    debounceTime(300),
    filter(term => term.length > 2),
    switchMap(term => fetch('/api/search?q=' + term)
      .then(res => res.json()))
  );

search$.subscribe(results => {
  renderResults(results);
});

debounceTime čeká 300ms po posledním vstupu. switchMap zruší předchozí request při novém. Elegantní řešení komplexního problému.

RxJS v Angular 2

Angular 2 integruje RxJS hluboce:

  • HttpClient** — vrací Observable místo Promise
  • Router** — route params jako Observable
  • Forms** — valueChanges jako Observable
  • EventEmitter** — interně Observable

Angular tým zvolil RxJS pro jeho composability — kombinace HTTP requestů, user inputu a route changes v jednom deklarativním pipeline.

Kdy použít RxJS mimo Angular

RxJS není jen pro Angular — dává smysl kdekoli s komplexní asynchronní logikou:

  • Real-time dashboardy** — kombinace WebSocket streamů
  • Autocomplete/typeahead** — debouncing, cancellation
  • Drag and drop** — composing mouse events
  • Polling s retry** — interval + HTTP + error handling

Pro jednoduché fetch requesty je RxJS overkill — Promise stačí. RxJS září v komplexních asynchronních scénářích.

Závěr: mocný nástroj s učební křivkou

RxJS je nejpokročilejší nástroj pro asynchronní programování v JavaScriptu. Učební křivka je strmá — 200+ operátorů a nový mentální model. Ale pro komplexní real-time aplikace je návratnost investice obrovská. Začněte s jednoduchými scénáři a postupně rozšiřujte.

rxjsreaktivní programováníobservablesangularjavascriptasynchronní
Sdílet:

CORE SYSTEMS

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.