Наблюдаемые объекты RxJS можно использовать для ленивого или асинхронного выполнения логики. у него есть два компонента для выполнения этих операций, а именно:
· Наблюдаемый
· Наблюдатель
Всякий раз, когда мы хотим, чтобы что-то работало асинхронно, это можно обернуть внутри этого Observable.
Observer будет прослушивать Observable и запустится после завершения этой асинхронной операции.
Пример:
Наблюдаемый:
Есть три метода next(), error(), complete(), которые можно вызывать внутри обратного вызова Observable для обработки успешных и ошибочных операций.
next() — используется для передачи результата успешной асинхронной операции.
error() — используется для передачи результата ошибки в асинхронной операции.
complete() — это похоже на next(), используемое для того, чтобы наблюдаемая операция была завершена, но next() можно вызывать несколько раз со значениями в качестве параметра, но complete — это конец операции, и он не получит никаких параметров.
Наблюдатель:
Мы можем прослушивать наблюдаемое с помощью метода subscribe() и можем подписаться на операцию, выполняемую в наблюдаемом, используя три прослушивателя next, error, complete, которые будут функцией обратного вызова, вызываемой после выполнения наблюдаемых вызовов.
При закрытии/уничтожении страницы подписка должна быть отменена в случае одностраничных приложений Angular или React.
В чем разница между Observables и Promises?
В некоторых случаях Observables похожи на Promises в обработке асинхронных операций, но они отличаются тем, что они
· Observables могут возвращать несколько ответов, вызывая next(), а Promises могут возвращать только один ответ, вызывая resolve().
· Мы можем выполнять промежуточные операции в Observables, составляя операторы rxjs, такие как map, filter, tap, throwError и т. д., но Promises не предоставляет никаких инструментов для подключения к результату разрешения.
· Наблюдаемые объекты предоставляются библиотекой rxjs, поэтому нам нужно установить библиотеку rxjs из npm, чтобы использовать ее, но промисы предоставляются веб-API браузера, для него не требуется какая-либо сторонняя библиотека.
· Подписка на Observables должна быть отменена, поскольку она продолжает слушать, даже если компонент (компоненты пользовательского интерфейса SPA) на странице уничтожен, но обещания не нужны для отмены подписки
Спасибо за прочтение!!!!!!