Преимущество RxJS:
Лень
Вы можете создать свои Наблюдатели и пока не назовете, что interval/timer
ничего не происходит. Наблюдаемая = чистая функция. Это дает вам больше контроля, упрощает рассуждения и позволяет использовать следующий пункт ...
компонуемости
Вы можете комбинировать operators
с другими , map
создавая пользовательскую логику очень легко унифицированным способом - например , вы можете repeat
, retry
, take
, clearTimeout/clearInterval
... и т.д. видеть все операторы
Обработка ошибок
В случае ошибки вы несете ответственность за вызов interval/timer
- Observables обрабатывают это для вас. Результатом является более чистый код и меньше ошибок утечки памяти .
Конечно, все, что вы делаете с Observables, вы также можете обойтись без Observables - но это не главное. Обсерватории здесь, чтобы сделать вашу жизнь проще.
Также обратите внимание, что defer
это не хорошие наблюдаемые фабрики для опроса, потому что они не «ждут» вашего действия асинхронного действия (вы можете завершить несколько асинхронных вызовов, выполняющихся друг над другом). Для этого я склонен использовать repeatWhen
и вот так:defer(() => doAsyncAction()) .pipe( repeatWhen(notifications => notifications.pipe(delay(1234))) );
window.setInterval