Sobes.tech
Middle

¿Cuáles son las similitudes y diferencias entre Observable y Promise?

sobes.tech AI

Respuesta de la IA

Similitudes:

  • Representan operaciones asíncronas.
  • Utilizan funciones para manejar el resultado (resuelto) y el error (rechazado).

Diferencias:

Característica Promesa Observable
Valor/evento Devuelve un valor o un error. Devuelve 0 o más valores a lo largo del tiempo.
Cancelación No se puede cancelar después de iniciar. Se puede cancelar la suscripción.
Múltiples suscriptores Ejecución única independientemente de los suscriptores. Una nueva suscripción generalmente conduce a una nueva ejecución (Observable en frío).
Lazy Comienza a ejecutarse inmediatamente después de su creación. Solo comienza a ejecutarse después de la suscripción.
Operadores No tiene operadores integrados para transformación. Tiene un conjunto rico de operadores (map, filter, merge, etc.).
Ejemplos de uso Solicitudes HTTP, acciones diferidas. Eventos UI, conexiones WebSocket, intervalos.

Ejemplo de Observable:

import { Observable } from 'rxjs';

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

Ejemplo de Promise:

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