Think of RxJS as Lodash for events. Pensar dessa forma é interessante porque criar um mecanismo de eventos não é um conceito raro ou complexo, contudo o RxJS tem funcionalidades builtin que facilitam o manuseio de eventos, como por exemplo o uso de operadores. É importante ressaltar que esses operadores são funções puras que tornam seu código menos propenso a erros.
- A one-to-many dependency between objects should be defined without making the objects tightly coupled.
- It should be ensured that when one object changes state, an open-ended number of dependent objects are updated automatically.
- It should be possible that one object can notify an open-ended number of other objects.
-
pluck
extrai alguma chave do iterador{ payload: data }
->.pluck('payload')
extrai só opayload
nesse caso -
switchMap
troca o valor que está sendo iterado no observable, exemplo você "ouve" a digitação de um input mas quer passar o resultado da busca pra uma variável -
merge
junta observables em um só, tipo como o useEffect faz no react -
O operador
filter
previne que o fluxo seja continuado caso uma condição não seja satisfeita -
Importante: A ordem dos operadores faz diferença no resultado final!