JavaScriptPOOdesafio

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}) → 4

SOBRE 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

Mais exercícios de POO

JSP021 · AvançadoClasse LinkedListJSP005 · BásicoContador de instânciasJSP008 · Básicoinstanceof e verificação de tipoJSP009 · BásicoClasse abstrata simulada
Ver todos os exercícios de JavaScript