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