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

О библиотеке

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.

import { fromEvent } from 'rxjs'

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

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

Ссылки