Наблюдаемые объекты 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) на странице уничтожен, но обещания не нужны для отмены подписки

Спасибо за прочтение!!!!!!