DEV Community

Cover image for Conceitos Básicos de RxJS
Levy Henrique Alves Nunes
Levy Henrique Alves Nunes

Posted on

Conceitos Básicos de RxJS

Ao explorar o universo JavaScript moderno, é provável que você encontre referências ao RxJS. Esta biblioteca tem ganhado destaque no ecossistema front-end, especialmente com o crescimento do Angular. Então, quais são os conceitos básicos do RxJS? Vamos mergulhar juntos!

1. O que é RxJS?

RxJS (Reactive Extensions for JavaScript) é uma biblioteca para programação reativa usando observáveis. Ela fornece uma maneira poderosa de manipular sequências de eventos ou valores ao longo do tempo.

2. Principais Conceitos

a) Observáveis

São sequências de valores ou eventos que podem ser emitidos ao longo do tempo. Eles podem emitir múltiplos valores, ao contrário das Promises que resolvem apenas uma vez.

const observable = new Rx.Observable(observer => {
  observer.next('Hello');
  observer.next('World');
});
Enter fullscreen mode Exit fullscreen mode

b) Observadores

São objetos que definem callbacks para notificações entregues pelos observáveis.

const observer = {
  next: value => console.log(value),
  error: err => console.error(err),
  complete: () => console.log('Completed!')
};
Enter fullscreen mode Exit fullscreen mode

c) Subscrição

Para começar a receber os valores emitidos por um observável, um observador precisa se inscrever nele.

const subscription = observable.subscribe(observer);
Enter fullscreen mode Exit fullscreen mode

d) Operadores

São funções puras que permitem uma ampla gama de operações, como mapeamento, filtragem e redução. Os operadores podem ser encadeados para criar novos observáveis.

import { from } from 'rxjs';
import { filter } from 'rxjs/operators';

const numbers = from([1, 2, 3, 4, 5]);
const evenNumbers = numbers.pipe(filter(n => n % 2 === 0));
evenNumbers.subscribe(value => console.log(value));
Enter fullscreen mode Exit fullscreen mode

e) Subjects

São observáveis especiais que também podem agir como observadores. Isso significa que você pode chamar next() neles para emitir novos valores.

import { Subject } from 'rxjs';

const subject = new Subject();

subject.subscribe(value => console.log(`Observer A: ${value}`));
subject.subscribe(value => console.log(`Observer B: ${value}`));

subject.next(1);
subject.next(2);
Enter fullscreen mode Exit fullscreen mode

3. Por que usar RxJS?

  • Manipulação Assíncrona: Simplifica operações complexas e assíncronas.
  • Flexibilidade: Fornece uma ampla gama de operadores.
  • Elegância: Torna o código mais legível e compreensível.
  • Gerenciamento: Facilita o cancelamento de operações e a gestão de recursos.

4. Conclusão

RxJS é uma biblioteca robusta que traz conceitos da programação reativa para o JavaScript. Seja para lidar com eventos do usuário, chamadas de API ou qualquer outra sequência de valores, o RxJS oferece ferramentas que podem tornar seu código mais limpo, eficiente e poderoso.


Espero que este post forneça uma base sólida para você começar a explorar o mundo do RxJS!

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

Cloudinary image

Optimize, customize, deliver, manage and analyze your images.

Remove background in all your web images at the same time, use outpainting to expand images with matching content, remove objects via open-set object detection and fill, recolor, crop, resize... Discover these and hundreds more ways to manage your web images and videos on a scale.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay