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);
});