Sobes.tech
Middle

Quais são as semelhanças e diferenças entre Observable e Promise?

sobes.tech IA

Resposta da IA

Semelhanças:

  • Representam operações assíncronas.
  • Utilizam funções para tratar o resultado (resolvido) e o erro (rejeitado).

Diferenças:

Característica Promessa Observable
Valor/evento Retorna um valor ou um erro. Retorna 0 ou mais valores ao longo do tempo.
Cancelamento Não pode ser cancelada após iniciar. Pode cancelar a assinatura.
Múltiplos assinantes Execução única independentemente dos assinantes. Uma nova assinatura geralmente leva a uma nova execução (Observable frio).
Lazy Começa a ser executada imediatamente após a criação. Só começa a ser executada após a assinatura.
Operadores Não possui operadores embutidos para transformação. Possui um conjunto rico de operadores (map, filter, merge, etc.).
Exemplos de uso Requisições HTTP, ações diferidas. Eventos UI, conexões WebSocket, intervalos.

Exemplo de Observable:

import { Observable } from 'rxjs';

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

Exemplo de Promise:

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