Error vs Complete

Az RxJS, amely az Angular reaktív programozási könyvtára, az Observable típust használja az aszinkron és eseményalapú programok kezelésére. Egy Observable háromfajta üzenetet küldhet a feliratkozóinak: next, error, és complete. Az error és complete üzenetek speciális jelentéssel bírnak:

error

  • Az error üzenet akkor jön létre, amikor az Observable során valamilyen hiba történik.
  • Az error metódus egy hibaobjektumot vesz paraméterként, ami információkat tartalmaz a hibáról.
  • Amikor egy Observable hibaüzenetet küld, az azt jelenti, hogy valami váratlan vagy nemkívánatos esemény történt, ami megakadályozza az adatok további kiadását.
  • Az error hívása után az Observable megszűnik adatokat küldeni, és “leáll”.
  • A feliratkozók error callback függvénye fogja kezelni ezt a hibaüzenetet.

Példa:

const myObservable = new Observable(observer => {
    observer.next('Adat 1');
    observer.next('Adat 2');
    observer.error(new Error('Hiba történt'));
    observer.next('Ez az adat már nem lesz elküldve');
});

myObservable.subscribe({
    next: data => console.log(data),
    error: err => console.error(err.message)
});

Ebben a példában az error hívás után az ‘Ez az adat már nem lesz elküldve’ üzenet nem jut el a feliratkozóhoz.

complete

  • A complete metódus akkor hívódik meg, amikor az Observable befejezte az adatküldést és nincs több adat, amit küldhetne.
  • A complete hívása azt jelzi, hogy az Observable sikeresen befejezte a műveletét.
  • A complete metódus nem vesz paramétert.
  • A complete hívása után az Observable nem küld több adatot.
  • A feliratkozók complete callback függvénye fogja kezelni ezt az eseményt.

Példa:

const myObservable = new Observable(observer => {
    observer.next('Adat 1');
    observer.next('Adat 2');
    observer.complete();
    observer.next('Ez az adat már nem lesz elküldve');
});

myObservable.subscribe({
    next: data => console.log(data),
    complete: () => console.log('Befejeződött')
});

Ebben a példában a complete hívása után a ‘Ez az adat már nem lesz elküldve’ üzenet nem jut el a feliratkozóhoz, és a ‘Befejeződött’ üzenet jelzi, hogy az Observable befejezte a működését.

Was this page helpful?