Sobes.tech
Middle

O que é um observable?

sobes.tech IA

Resposta da IA

Observable — é um fluxo de dados que pode emitir valores de forma assíncrona. Ao contrário das promessas, que retornam um único valor, um observable pode emitir zero, um ou múltiplos valores ao longo do tempo.

Características principais:

  • Preguiçosos: O fluxo só começa a trabalhar quando alguém se inscreve.
  • Canceláveis: Pode cancelar a inscrição no fluxo para parar sua execução e liberar recursos.
  • Múltiplos valores: Pode emitir vários valores, enquanto as promessas resolvem apenas uma vez.

Componentes principais:

  • Observable: O próprio fluxo de dados.
  • Observer: Objeto com métodos next, error e complete, que são chamados pelo observable.
  • Subscription: Resultado da inscrição em um observable, permite cancelar a inscrição.
  • Operadores: Funções que transformam ou combinam observables (por exemplo, map, filter, merge).

Exemplo de uso (RxJS):

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

const source = of(1, 2, 3); // Criamos um observable que emite 1, 2, 3

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

const subscription = example.subscribe({ // Inscrevemos no observable
  next: value => console.log(`Next: ${value}`), // Processa cada valor
  error: err => console.error(`Error: ${err}`), // Processa erro
  complete: () => console.log('Complete!') // Quando termina o fluxo
});

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

// subscription.unsubscribe(); // Pode cancelar a inscrição