Heim  >  Artikel  >  Web-Frontend  >  Beobachtbar vs. Versprechen

Beobachtbar vs. Versprechen

DDD
DDDOriginal
2024-11-27 21:22:11374Durchsuche

Observable v/s Promise

*Observables * und *Promises * werden beide zur Verarbeitung asynchroner Vorgänge in JavaScript verwendet, weisen jedoch einige wesentliche Unterschiede auf:

Versprechen

  • Einzelwert: Versprechen verarbeiten ein einzelnes asynchrones Ereignis und geben einen einzelnen Wert (oder Fehler) zurück.
  • Eifrig: Versprechen werden sofort nach der Erstellung ausgeführt.
  • Nicht stornierbar: Sobald ein Versprechen initiiert wurde, kann es nicht storniert werden.
  • Syntax: Verwendet .then(), .catch() und .finally() zum Verketten von Operationen.

Beispiel:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Promise resolved!');
  }, 1000);
});

promise.then((value) => {
  console.log(value);
});

Observablen

  • Mehrere Werte: Observable können im Laufe der Zeit mehrere Werte ausgeben.
  • Lazy: Observables beginnen erst dann mit der Ausgabe von Werten, wenn sie abonniert wurden.
  • Kündigbar: Abonnements für Observables können gekündigt werden, wodurch die Ausgabe von Werten gestoppt wird.
  • Syntax: Verwendet .subscribe(), um ausgegebene Werte, Fehler und Vervollständigung zu verarbeiten.

Beispiel:

import { Observable } from 'rxjs';

const observable = new Observable((subscriber) => {
  subscriber.next('First value');
  setTimeout(() => {
    subscriber.next('Second value');
    subscriber.complete();
  }, 1000);
});

const subscription = observable.subscribe({
  next(value) {
    console.log(value);
  },
  complete() {
    console.log('Observable complete');
  }
});

// To cancel the subscription
subscription.unsubscribe();

Wann jeweils zu verwenden ist

  • Verwenden Sie Promises, wenn Sie einen einzelnen asynchronen Vorgang abwickeln müssen.
  • Verwenden Sie Observables, wenn Sie mehrere asynchrone Ereignisse oder Werte im Laufe der Zeit verarbeiten müssen und wenn Sie mehr Kontrolle über den Datenstrom benötigen (z. B. Stornierung, Transformation).

Das obige ist der detaillierte Inhalt vonBeobachtbar vs. Versprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn