Sobes.tech
Middle

Jakie są podobieństwa i różnice między Observable a Promise?

sobes.tech AI

Odpowiedź od AI

Podobieństwa:

  • Reprezentują operacje asynchroniczne.
  • Używają funkcji do obsługi wyniku (rozwiązany) i błędu (odrzucony).

Różnice:

Cecha Promise Observable
Wartość/zdarzenie Zwraca jedną wartość lub błąd. Zwraca 0 lub więcej wartości z czasem.
Anulowanie Nie można anulować po uruchomieniu. Można anulować subskrypcję.
Wielu subskrybentów Jednorazowe wykonanie niezależnie od subskrybentów. Nowa subskrypcja zwykle prowadzi do nowego wykonania (zimny Observable).
Lenistwo Zaczyna się wykonywać od razu po utworzeniu. Zaczyna się wykonywać dopiero po subskrypcji.
Operatory Nie ma wbudowanych operatorów do transformacji. Posiada bogaty zestaw operatorów (map, filter, merge itp.).
Przykłady użycia Żądania HTTP, odłożone działania. Wydarzenia UI, połączenia WebSocket, interwały.

Przykład Observable:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next(1);
  subscriber.next(2);
  setTimeout(() => {
    subscriber.next(3);
    subscriber.complete();
  }, 1000);
});

Przykład Promise:

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