Az RxJS (Reactive Extensions for JavaScript) egy JavaScript könyvtár és programozási stílus, amely reaktív programozást kínál. A reaktív programozás paradigma azt jelenti, hogy az alkalmazás reagál az adatok folyamatos változására és eseményeire, és aszinkron módon kezeli ezeket az eseményeket.
Adatokat lehet juttatni egy Observable-be és egy Subject-be a RxJS használatával, amely egy olyan könyvtár, amely lehetővé teszi az aszinkron adatáramlás kezelését JavaScriptben. Az Observable egy olyan eseményfolyam, amely értesítéseket (emission) küld, amikor új adatok állnak rendelkezésre, míg a Subject egy speciális típusú Observable, amely adatokat is küldhet és feliratkozókat is kezelhet.
Adatok juttatása egy Observable-be:
Az Observable létrehozása és adatok küldése egy példa:
import { Observable } from 'rxjs';
// Observable létrehozása
const myObservable = new Observable(observer => {
// Adatok küldése
observer.next('Első érték');
observer.next('Második érték');
// ...
// Observable befejezése
observer.complete();
});
// Feliratkozás az Observable-re
myObservable.subscribe(data => {
console.log(data);
});
Az Observable létrehozása során egy “observer” függvényt definiálunk, amely tartalmazza az adatokat és az eseményeket (pl. next) az értesítések küldéséhez. A subscribe függvénnyel iratkozunk fel az Observable-re, és megkapjuk az értesítéseket.
Adatok juttatása egy Subject-be:
A Subject lehetővé teszi az adatok aktív küldését a feliratkozók felé:
import { Subject } from 'rxjs';
// Subject létrehozása
const mySubject = new Subject();
// Feliratkozás a Subject-re
mySubject.subscribe(data => {
console.log('Feliratkozó 1:', data);
});
mySubject.subscribe(data => {
console.log('Feliratkozó 2:', data);
});
// Adatok küldése a Subject-en keresztül
mySubject.next('Első érték');
mySubject.next('Második érték');
A Subject a next függvény segítségével adatokat küld a feliratkozók felé. Itt látható, hogy több feliratkozó is lehet egy Subject-en, és mindegyikük megkapja az adatokat, amikor azok elküldésre kerülnek.
Fontos megjegyezni, hogy a Subject aktívan kezeli az értesítéseket, míg az Observable passzív módon értesítéseket küld. A Subject-et gyakran használják például eseménykezelőként vagy globális állapotmenedzserként egy alkalmazásban.