Compreendendo os Operadores
Os operadores RxJS são um conjunto de funções para transformar, compor e controlar fluxos de dados Observable.
Os operadores geralmente são usados em combinação com vários outros, e é aí que entra o "pipeline".
No RxJS, os operadores se dividem nas seguintes categorias
Lista de categorias
- Operadores de Transformação
- Operadores de Filtragem
- Operadores de Combinação
- Operadores Utilitários
- Operadores Condicionais
- Operadores de Tratamento de Erros
- Operadores de Multicasting
Cada categoria contém vários operadores úteis. Consulte cada categoria para obter detalhes.
Lista de Operadores
Para uma descrição detalhada de cada operador, clique no link para navegar.
| Categoria | Operador | Descrição |
|---|---|---|
| Transformação | map | Converte cada valor |
| scan | Acumula valores e gera resultados intermediários | |
| reduce | Acumula todos os valores e gera apenas o resultado final | |
| pairwise | Processa dois valores consecutivos em pares | |
| groupBy | Agrupa streams por chave | |
| mergeMap | Execução paralela de processamento assíncrono | |
| switchMap | Executa apenas o processamento assíncrono mais recente (cancela processamento mais antigo) | |
| concatMap | Executa processos assíncronos sequencialmente | |
| exhaustMap | Ignora novos processos durante a execução | |
| expand | Expande resultados recursivamente | |
| buffer | Publica valores em um array | |
| bufferTime | Publica valores em intervalos de tempo especificados | |
| bufferCount | Publica valores em lotes de número especificado de valores | |
| bufferWhen | Buffering com condições de término controladas dinamicamente | |
| bufferToggle | Buffering com controle independente de início e fim | |
| Filtragem | filter | Permite passar apenas valores que correspondem à condição |
| take | Obtém apenas os primeiros N valores | |
| takeLast | Obtém os últimos N valores | |
| takeWhile | Obtém valores enquanto a condição é atendida | |
| skip | Pula os primeiros N valores | |
| skipLast | Pula os últimos N valores | |
| skipWhile | Pula valores enquanto a condição é satisfeita | |
| skipUntil | Pula valores até que outro Observable dispare | |
| first | Obtém o primeiro valor ou o primeiro valor que satisfaz uma condição | |
| last | Obtém o último valor ou o último valor que satisfaz a condição | |
| elementAt | Obtém o valor em um determinado índice | |
| find | Encontra o primeiro valor que satisfaz uma condição | |
| findIndex | Obtém o índice do primeiro valor que satisfaz a condição | |
| debounceTime | Emite o último valor se nenhuma entrada for recebida por um tempo especificado | |
| throttleTime | Passa o primeiro valor e ignora o novo valor pelo tempo especificado | |
| auditTime | Emite o último valor após o tempo especificado | |
| audit | Emite o último valor com Observable personalizado para controlar o período | |
| sampleTime | Amostra o valor mais recente em intervalo de tempo especificado | |
| ignoreElements | Ignora todos os valores e passa apenas conclusões/erros | |
| distinct | Remove todos os valores duplicados (gera apenas valores únicos) | |
| distinctUntilChanged | Remove valores duplicados consecutivos | |
| distinctUntilKeyChanged | Detecta apenas mudanças em propriedades específicas de um objeto | |
| Combinação (Pipeable) | concatWith | Junta outros Observables em sequência após a conclusão |
| mergeWith | Combina vários Observables simultaneamente | |
| combineLatestWith | Combina o valor mais recente de cada Observable | |
| zipWith | Emparelha valores na ordem correspondente | |
| raceWith | Adota apenas o primeiro Observable que dispara | |
| withLatestFrom | Anexa outros valores mais recentes ao stream principal | |
| mergeAll | Achata Higher-order Observables em paralelo | |
| concatAll | Achata Higher-order Observable em sequência | |
| switchAll | Muda para o Higher-order Observable mais recente | |
| exhaustAll | Ignora novo Higher-order Observable durante a execução | |
| combineLatestAll | Combina os valores mais recentes de todos os Observables internos | |
| zipAll | Emparelha os valores correspondentes de cada Observable interno | |
| Utilitários | tap | Executa efeitos colaterais (ex: saída de log) |
| finalize | Executa pós-processamento na conclusão ou erro | |
| delay | Atrasa todos os valores por um tempo especificado | |
| delayWhen | Atrasa cada valor dinamicamente com um Observable separado | |
| timeout | Emite um erro se um valor não chegar dentro de um tempo especificado | |
| takeUntil | Recupera valores até que outro Observable emita um valor | |
| retry | Tenta novamente até o número especificado de vezes em caso de erro | |
| repeat | Repete um número especificado de vezes após a conclusão | |
| startWith | Adiciona um valor inicial ao início do stream | |
| toArray | Publica todos os valores juntos em um array | |
| materialize | Converte uma notificação em um objeto Notification | |
| dematerialize | Converte o objeto Notification de volta para uma notificação normal | |
| observeOn | Usa o scheduler para controlar quando os valores são publicados | |
| subscribeOn | Usa o scheduler para controlar quando iniciar a inscrição | |
| timestamp | Adiciona um timestamp a cada valor | |
| Condicional | defaultIfEmpty | Se nenhum valor estiver disponível, emite valor padrão |
| every | Determina se todos os valores satisfazem a condição | |
| isEmpty | Determina se nenhum valor foi emitido | |
| Tratamento de Erros | catchError | Captura erros e executa processamento de fallback |
| retry | Tenta novamente um número especificado de vezes em caso de erro | |
| retryWhen | Tenta novamente com condições personalizadas | |
| Multicasting | share | Compartilha Observable entre vários assinantes |
| shareReplay | Armazena em cache os últimos N valores e os reproduz para novos assinantes |