Skip to content

Instantly share code, notes, and snippets.

@brenofreire
Created August 28, 2021 17:34
Show Gist options
  • Save brenofreire/69f17e8cfd6ed9fe314fe7a174749bc8 to your computer and use it in GitHub Desktop.
Save brenofreire/69f17e8cfd6ed9fe314fe7a174749bc8 to your computer and use it in GitHub Desktop.
Alura Anotações - Angular e RxJS: Programação reativa

Sobre RxJS

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.

O RxJS usa o Observer pattern, no qual as principais vantagens são:

  • 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.

Alguns operadores úteis

  • pluck extrai alguma chave do iterador { payload: data } -> .pluck('payload') extrai só o payload 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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment