Sobes.tech
Middle

What are the similarities and differences between Observable and Promise?

sobes.tech AI

Answer from AI

Similarities:

  • Represent asynchronous operations.
  • Use functions to handle the result (resolved) and error (rejected).

Differences:

Feature Promise Observable
Value/Event Returns a single value or error. Returns 0 or more values over time.
Cancellation Cannot be canceled after starting. Can cancel subscription.
Multiple subscribers Single execution regardless of subscribers. New unsubscription usually leads to new execution (cold Observable).
Laziness Starts executing immediately after creation. Starts executing only after subscription.
Operators No built-in operators for transformation. Has a rich set of operators (map, filter, merge, etc.).
Use cases HTTP requests, deferred actions. UI events, WebSocket connections, intervals.

Example of Observable:

import { Observable } from 'rxjs';

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

Example of Promise:

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