Padrões avançados de RxJS
Higher-order observables, multicasting, operadores share, recuperação de erros, estratégias de retry, backpressure, operadores personalizados
1Qual é a principal diferença entre switchMap e mergeMap ao lidar com requisições HTTP concorrentes?
Qual é a principal diferença entre switchMap e mergeMap ao lidar com requisições HTTP concorrentes?
Resposta
switchMap cancela requisições anteriores quando um novo valor chega, enquanto mergeMap mantém todas as inscrições ativas simultaneamente. Em uma barra de pesquisa, switchMap cancela automaticamente requisições em andamento ao receber nova entrada, evitando resultados obsoletos. mergeMap é adequado para ações independentes que devem todas concluir, como uploads de arquivos em paralelo.
2Quando deve-se usar concatMap em vez de mergeMap para processar uma fila de ações do usuário?
Quando deve-se usar concatMap em vez de mergeMap para processar uma fila de ações do usuário?
Resposta
concatMap garante a ordem de execução aguardando que cada observable interno conclua antes de processar o próximo, enquanto mergeMap processa todas as ações em paralelo sem garantia de ordem. Use concatMap para operações críticas que exigem ordem estrita, como transações bancárias sequenciais ou envio de mensagens em chat. mergeMap é adequado para ações independentes que podem rodar em paralelo.
3O que é um higher-order observable e por que requer um operador de flattening?
O que é um higher-order observable e por que requer um operador de flattening?
Resposta
Um higher-order observable é um observable que emite outros observables. Por exemplo, um observable de cliques que emite um observable de requisição HTTP para cada clique. Sem um operador de flattening (switchMap, mergeMap, concatMap), obtém-se uma estrutura aninhada Observable<Observable<T>> inutilizável diretamente. Operadores de flattening se inscrevem automaticamente nos observables internos e emitem seus valores no fluxo principal.
Qual operador usar para cancelar automaticamente uma pesquisa em andamento quando o usuário digita nova entrada?
Como exhaustMap difere de switchMap no tratamento de requisições críticas?
+19 perguntas de entrevista
Outros temas de entrevista Angular
Fundamentos do TypeScript
TypeScript Avançado
Fundamentos do Angular
Componentes e ciclo de vida
Services & Dependency Injection
Organização de Módulos Angular
Angular CLI
Diretivas e Pipes
Routing e Navegação
Formulários reativos
Formulários template-driven
Fundamentos do RxJS
Operadores RxJS
HttpClient e chamadas de API
Gerenciamento de estado básico
Change Detection
Angular Signals
Standalone Components
Testes unitários em Angular
Testes End-to-End
Build e otimização
Fundamentos do NgRx
NgRx avançado
Arquitetura Angular
Otimização de desempenho
Segurança e boas práticas
Angular Universal e SSR
Micro-frontends Angular
Domine Angular para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis