Sobes.tech
Middle

¿Qué es observable?

sobes.tech AI

Respuesta de la IA

Observable — es un flujo de datos que puede emitir valores de forma asíncrona. A diferencia de las promesas, que devuelven un solo valor, un observable puede emitir cero, uno o múltiples valores a lo largo del tiempo.

Características clave:

  • Perezosos: El flujo comienza a trabajar solo cuando alguien se suscribe.
  • Cancelables: Se puede cancelar la suscripción al flujo para detener su ejecución y liberar recursos.
  • Múltiples valores: Pueden emitir varios valores, mientras que las promesas se resuelven solo una vez.

Componentes principales:

  • Observable: El propio flujo de datos.
  • Observer: Objeto con métodos next, error y complete, que son llamados por el observable.
  • Subscription: Resultado de la suscripción a un observable, permite cancelar la suscripción.
  • Operadores: Funciones que transforman o combinan observables (por ejemplo, map, filter, merge).

Ejemplo de uso (RxJS):

import { of } from 'rxjs';
import { map } from 'rxjs/operators';

const source = of(1, 2, 3); // Creamos un observable que emite 1, 2, 3

const example = source.pipe(map(x => x + 1)); // Aplicamos el operador map

const subscription = example.subscribe({ // Nos suscribimos al observable
  next: value => console.log(`Next: ${value}`), // Procesa cada valor
  error: err => console.error(`Error: ${err}`), // Procesa errores
  complete: () => console.log('Complete!') // Se llama al terminar el flujo
});

// salida:
// Next: 2
// Next: 3
// Next: 4
// Complete!

// subscription.unsubscribe(); // Se puede cancelar la suscripción