О библиотеке¶
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 |
|
Здесь регистрируется обработчик, который при движении мыши в пределах всего документа в консоль будет выводить полную информации о событии.