Framework reativo com classes
Reatividade é essencial em aplicações modernas para lidar com fluxos de eventos assíncronos, como cliques, respostas HTTP ou dados em tempo real. Frameworks como RxJS permitem compor esses eventos de forma declarativa, evitando callbacks aninhados. Implementar um mini framework reativo do zero ajuda a entender como operadores como map e filter trabalham por baixo dos panos, capacitando você a depurar e estender bibliotecas reais.
O PROBLEMA
Implemente mini framework reativo: Observable (subscribe, next, error, complete), Subject, map e filter.
EXEMPLO
const obs = new Observable(sub => { sub.next(1); sub.next(2); sub.complete(); });
obs.map(x => x*2).filter(x => x > 2).subscribe({next: console.log}) → 4SOBRE O CONCEITO
O padrão central é o Observable, que representa uma fonte de dados que pode emitir valores (next), sinalizar erro (error) ou conclusão (complete). Um Subject é tanto um Observable quanto um Observer, permitindo multicast para múltiplos assinantes. Os operadores map e filter devem retornar novos Observables que transformam/selecionam valores da fonte original — é aí que muitos erram: ou retornam um valor comum, ou não retornam nada. O erro comum "map/filter não retornando Observable" quebra a encadeabilidade. Outro erro frequente é não implementar complete, o que pode causar vazamento de recursos. No código, use class, constructor, this e métodos como subscribe. O operador map cria um Observable que, ao assinar, assina a fonte e aplica a função. filter faz o mesmo, mas só emite next se o predicado for verdadeiro.
RESOLUÇÃO