Перейти к содержанию

О библиотеке

RxJS представляет собой библиотеку, позволяющую управлять всеми асинхронными операциями и событиями в приложении в стиле реактивного программирования. Она построена на основе паттерна проектирования Observer и предусматривает целый ряд операторов для манипуляции асинхронными событиями и обработки передаваемых ими данных.

Ключевые понятия RxJS:

  • Observable;
  • Observer;
  • Subject;
  • Scheduler;
  • Subscription;
  • Operator.

RxJS оперирует объектами Observable, которые существуют в нескольких разновидностях (Subject, Scheduler) и реализуют принцип push-систем передачи данных от "поставщика" к "потребителю".

Помимо push-систем выделяют еще и pull-системы передачи данных.

В pull-системах "потребитель" решает, когда получить данные от "поставщика". Любая JavaScript функция — яркий пример такой системы. Код вызова функции — "потребитель", сама функция — "поставщик".

В случае с RxJS Observable именно отправитель решает, когда отправить данные получателю. К этому типу push-систем относятся и объекты Promise, которые предоставляют данные зарегистрированным callback-функциям и инициируют их вызов.

Преимущество объектов Observable в том, что они могут передавать данные множество раз в разные моменты времени множеству "потребителей".

В контексте приложений Angular RxJS применяется для выполнения HTTP-запросов, отслеживания событий браузера или создания пользовательских событий.

Пример создания простого Observable с использованием функции fromEvent.

1
2
3
4
5
import { fromEvent } from 'rxjs';

fromEvent(document, 'mousemove').subscribe((ev) => {
    console.log('Mouse event: ', ev);
});

Здесь регистрируется обработчик, который при движении мыши в пределах всего документа в консоль будет выводить полную информации о событии.

Ссылки

Комментарии