Middle
¿Cuáles son las similitudes y diferencias entre Observable y Promise?
sobes.tech AI
Respuesta de la IA
Observable representa un flujo de datos capaz de emitir múltiples valores a lo largo del tiempo. Es reactivo y soporta cancelación de suscripción. Promise siempre se resuelve o rechaza solo una vez y es de un solo uso. Observable soporta operadores para transformar datos, Promise no.
| Característica | Observable | Promise |
|---|---|---|
| Cantidad de valores | Puede emitir múltiples valores | Siempre un valor (resolve/reject) |
| Cancelación | Soporta cancelación de suscripción | No soporta cancelación |
| Reactividad | Reactivo | No |
| Operadores | Soporta operadores (map, filter, etc.) | No |
| Lazy | Pereza (se ejecuta al suscribirse) | Ansioso (se ejecuta inmediatamente) |
Ejemplo de Observable:
import { Observable } from 'rxjs';
const myObservable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
myObservable.subscribe({
next: value => console.log('Valor del Observable:', value),
error: err => console.error('Error del Observable:', err),
complete: () => console.log('Observable completo'),
});
Ejemplo de Promise:
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise resuelta');
// reject('Promise rechazada');
}, 1000);
});
myPromise
.then(value => console.log('Valor de la Promise:', value))
.catch(error => console.error('Error de la Promise:', error));