RxJS - Operadores
Os operadores são uma parte importante do RxJS. Um operador é uma função pura que recebe observáveis como entrada e a saída também é observável.
Trabalhando com Operadores
Um operador é uma função pura que recebe observável como entrada e a saída também é observável.
Para trabalhar com operadores, precisamos de um método pipe ().
Exemplo de uso de pipe ()
let obs = of(1,2,3); // an observable
obs.pipe(
operator1(),
operator2(),
operator3(),
operator3(),
)
No exemplo acima, criamos um observável usando of()método que leva os valores 1, 2 e 3. Agora, neste observável, você pode executar diferentes operações usando qualquer número de operadores usando o método pipe () conforme mostrado acima. A execução dos operadores continuará sequencialmente no observável dado.
Abaixo está um exemplo de trabalho -
import { of } from 'rxjs';
import { map, reduce, filter } from 'rxjs/operators';
let test1 = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
let case1 = test1.pipe(
filter(x => x % 2 === 0),
reduce((acc, one) => acc + one, 0)
)
case1.subscribe(x => console.log(x));
Resultado
30
No exemplo acima, usamos o operador de filtro que filtra os números pares e, a seguir, usamos reduce() operador que irá adicionar os valores pares e dar o resultado quando inscrito.
Aqui está uma lista de observáveis que iremos discutir.
- Creation
- Mathematical
- Join
- Transformation
- Filtering
- Utility
- Conditional
- Multicasting
- Manipulação de erros
Operadores de criação
A seguir estão os operadores que vamos discutir na categoria de operador de criação -
Sr. Não | Operador e descrição |
---|---|
1 | Ajax Este operador fará uma solicitação ajax para o URL fornecido. |
2 | de Este operador criará um observável a partir de uma matriz, um objeto semelhante a uma matriz, uma promessa, um objeto iterável ou um objeto semelhante a um observável. |
3 | fromEvent Este operador dará saída como um observável que deve ser usado em elementos que emitem um evento, por exemplo, botões, cliques, etc. |
4 | fromEventPattern Este operador criará um observável a partir da função de entrada que é usada para registrar manipuladores de eventos. |
5 | intervalo Este operador criará um Observável para cada vez durante o tempo fornecido. |
6 | do Este operador pegará os argumentos passados e os converterá em observáveis. |
7 | alcance Este operador criará um Observable que fornecerá uma sequência de números com base no intervalo fornecido. |
8 | throwError Este operador criará um observável que notificará um erro. |
9 | cronômetro Este operador criará um observável que emitirá o valor após o tempo limite e o valor continuará aumentando após cada chamada. |
10 | se Este operador decidirá qual Observable será inscrito. |
Operadores matemáticos
A seguir estão os operadores que vamos discutir na categoria Operador matemático -
Sr. Não | Operador e descrição |
---|---|
1 | Contagem O operador count () obtém um Observable com valores e o converte em um Observable que fornecerá um único valor |
2 | Max O método Max pegará um observável com todos os valores e retornará um observável com o valor máximo |
3 | Min O método Min pegará um observável com todos os valores e retornará um observável com o valor mínimo. |
4 | Reduzir No operador de redução, a função de acumulador é usada na entrada observável, e a função de acumulador retornará o valor acumulado na forma de um observável, com um valor semente opcional passado para a função de acumulador. A função reduz () terá 2 argumentos, uma função acumuladora e, em seguida, o valor da semente. |
Operadores de adesão
A seguir estão os operadores que discutiremos na categoria de operador Join.
Sr. Não | Operador e descrição |
---|---|
1 | concat Este operador emitirá sequencialmente o Observable fornecido como entrada e prosseguirá para o próximo. |
2 | forkJoin Este operador será obtido em uma matriz ou objeto dict como uma entrada e aguardará a conclusão do observável e retornará os últimos valores emitidos do observável fornecido. |
3 | fundir Este operador pegará a entrada observável e emitirá todos os valores do observável e emitirá uma única saída observável. |
4 | raça Ele retornará um observável que será uma cópia espelhada da primeira fonte observável. |
Operadores de transformação
A seguir estão os operadores que discutiremos na categoria Operador de transformação.
Sr. Não | Operador e descrição |
---|---|
1 | amortecedor O buffer opera em um observável e aceita o argumento como um observável. Ele começará a armazenar em buffer os valores emitidos em seu observável original em uma matriz e emitirá o mesmo quando o observável tomado como argumento emite. Uma vez que o observável tomado como argumento seja emitido, o buffer é reiniciado e começa a armazenar novamente no original até que o observável de entrada seja emitido e o mesmo cenário se repita. |
2 | bufferCount No caso do operador buffercount (), ele coletará os valores do observável no qual é chamado e emitirá os mesmos quando o tamanho do buffer fornecido para buffercount corresponder. |
3 | tempo de atraso Isso é semelhante a bufferCount, portanto, aqui, ele coletará os valores do observável no qual é chamado e emitirá o bufferTimeSpan. Recebe 1 argumento, ou seja, bufferTimeSpan . |
4 | bufferToggle No caso de bufferToggle () leva 2 argumentos, openings e fechandoSelector. Os argumentos de abertura são assináveis ou uma promessa de iniciar o buffer e o segundo argumento fechamentoSelector é novamente assinável ou promete um indicador para fechar o buffer e emitir os valores coletados. |
5 | bufferWhen Este operador fornecerá os valores na forma de array, ele recebe um argumento como uma função que decidirá quando fechar, emitir e redefinir o buffer. |
6 | expandir O operador de expansão recebe uma função como um argumento que é aplicado na fonte observável recursivamente e também na saída observável. O valor final é observável. |
7 | groupBy No operador groupBy, a saída é agrupada com base em uma condição específica e esses itens de grupo são emitidos como GroupedObservable. |
8 | mapa No caso do operador de mapa, uma função de projeto é aplicada em cada valor na fonte Observable e a mesma saída é emitida como um Observable. |
9 | mapa para Um valor constante é fornecido como saída junto com o Observable sempre que a fonte Observable emite um valor. |
10 | mergeMap No caso do operador mergeMap, uma função de projeto é aplicada em cada valor de origem e a saída dele é mesclada com a saída Observable. |
11 | switchMap No caso do operador switchMap, uma função de projeto é aplicada em cada valor de origem e a saída dele é mesclada com a saída Observable, e o valor fornecido é o Observable projetado mais recente. |
12 | janela Recebe um argumento windowboundaries que é um observável e devolve um observável aninhado sempre que os limites da janela emite |
Operadores de filtragem
A seguir estão os operadores que discutiremos na categoria de operador de filtragem.
Sr. Não | Operador e descrição |
---|---|
1 | debounce Um valor emitido da fonte Observável após um tempo e a emissão é determinada por outra entrada dada como Observável ou promessa. |
2 | debounceTime Ele emitirá um valor da fonte observável somente depois que o tempo for concluído. |
3 | distinto Este operador fornecerá todos os valores observáveis de origem que são distintos quando comparados com o valor anterior. |
4 | elementAt Este operador fornecerá um único valor da fonte observável com base no índice fornecido. |
5 | filtro Este operador filtrará os valores da fonte Observable com base na função de predicado fornecida. |
6 | primeiro Este operador dará o primeiro valor emitido pela fonte Observable. |
7 | último Este operador dará o último valor emitido pela fonte Observable. |
8 | ignoreElements Este operador irá ignorar todos os valores da fonte Observable e apenas executará chamadas para completar ou funções de callback de erro. |
9 | amostra Este operador fornecerá o valor mais recente da fonte Observable e a saída dependerá do argumento transmitido a ele emite. |
10 | pular Este operador retornará um observável que ignorará a primeira ocorrência de itens de contagem tomados como entrada. |
11 | acelerador Este operador emitirá e também ignorará os valores da fonte observáveis pelo tempo determinado pela função de entrada tomada como um argumento e o mesmo processo será repetido. |
Operadores de serviços públicos
A seguir estão os operadores que discutiremos na categoria de operadores de serviços públicos.
Sr. Não | Operador e descrição |
---|---|
1 | toque Este operador terá a saída, igual ao observável de origem, e pode ser usado para registrar os valores do observável para o usuário. O valor principal, erro se houver ou se a tarefa foi concluída. |
2 | demora Este operador atrasa os valores emitidos da fonte Observable com base no tempo limite fornecido. |
3 | atrasar quando Este operador atrasa os valores emitidos da fonte Observável com base no tempo limite de outro observável tomado como entrada. |
4 | observeOn Este operador baseado no agendador de entrada irá reemitir as notificações da fonte Observable. |
5 | subscribeOn Este operador ajuda a assinantes assíncronos para a fonte Observable com base no planejador considerado como entrada. |
6 | intervalo de tempo Este operador retornará um objeto que contém o valor atual e o tempo decorrido entre o valor atual e o anterior que é calculado usando a entrada do planejador obtida. |
7 | timestamp Retorna o carimbo de data / hora junto com o valor emitido da fonte Observable, que informa sobre a hora em que o valor foi emitido. |
8 | tempo esgotado Este operador lançará um erro se a fonte Observable não emitir um valor após o tempo limite fornecido. |
9 | toArray Acumula todos os valores de origem do Observable e os produz como uma matriz quando a origem é concluída. |
Operadores condicionais
A seguir estão os operadores que discutiremos na categoria de operadores condicionais.
Sr. Não | Operador e descrição |
---|---|
1 | defaultIfEmpty Este operador retornará um valor padrão se a fonte observável estiver vazia. |
2 | cada Ele retornará um Observable com base na função de entrada que satisfaz a condição de cada um dos valores da fonte Observable. |
3 | encontrar Isso retornará o observável quando o primeiro valor da fonte Observável satisfizer a condição para a função de predicado tomada como entrada. |
4 | findIndex Este operador baseado no agendador de entrada irá reemitir as notificações da fonte Observable. |
5 | está vazia Este operador dará a saída como verdadeira se a entrada observável for para um retorno de chamada completo sem emitir nenhum valor e falso se a entrada observável emitir qualquer valor. |
Operadores multicast
A seguir estão os operadores que vamos discutir na categoria de operadores multicast.
Sr. Não | Operador e descrição |
---|---|
1 | multicast Um operador multicast compartilha a única assinatura criada com outros assinantes. Os parâmetros que o multicast recebe, é um assunto ou um método de fábrica que retorna um ConnectableObservable que tem o método connect (). Para se inscrever, o método connect () deve ser chamado. |
2 | publicar Este operador retorna ConnectableObservable e precisa usar o método connect () para assinar os observáveis. |
3 | publishBehavior publishBehaviour usa BehaviourSubject e retorna ConnectableObservable. O método connect () deve ser usado para assinar o observável criado. |
4 | publicarLast publishBehaviour faz uso de AsyncSubject e retorna ConnectableObservable. O método connect () deve ser usado para assinar o observável criado. |
5 | publicarReplay publishReplay faz uso de assunto de comportamento em que pode armazenar os valores e reproduzir os mesmos para os novos assinantes e retorna ConnectableObservable. O método connect () deve ser usado para assinar o observável criado. |
6 | compartilhar É um alias para o operador mutlicast (), com a única diferença que você não precisa chamar o método connect () manualmente para iniciar a assinatura. |
Operadores de tratamento de erros
A seguir estão os operadores que discutiremos na categoria de operadores de tratamento de erros.
Sr. Não | Operador e descrição |
---|---|
1 | catchError Este operador se encarrega de detectar erros na fonte Observable, retornando um novo Observable ou um erro. |
2 | tentar novamente Este operador se encarregará de tentar novamente na fonte Observável se houver erro e a nova tentativa será feita com base na contagem de entrada fornecida. |