Вариант использования: Вызов функции каждую минуту (60000 мс), которая отправляет действие хранилища для извлечения lastUpdated
состояния элементов, которое после ответа и фильтрации обновляет хранилище и обновляет хранилище, читается какнаблюдаемый и отображается в представлении).Это должно происходить до тех пор, пока веб-приложение открыто (до бесконечности).
В настоящее время я использую это:
this.refreshDate = window.setInterval(
() => this.store.dispatch(new FetchLastUpdate())
, 60000);
И когда представление уничтожено / демонтировано, яудалите интервал следующим образом:
if (this.refreshDate) {
clearInterval(this.refreshDate);
}
Это эффективно / действенно или хлопотно?
Зачем мне использовать стратегию опроса RxJS, например:
interval(60000)
.pipe(
startWith(0),
switchMap(() => this.store.dispatch(new FetchLastUpdate()))
);
Или
timer(0, 60000)
.pipe(
switchMap(() => this.store.dispatch(new FetchLastUpdate()))
);
TL; DR: window.setInterval()
против RxJS timer()
/ interval()
Заключение / ответы (для простоты исследования):
Использование функций RxJS для установки интервала или опроса очень полезно, эти преимущества объясняются в выбранном ответе но также и в комментариях, но делается вывод (из обсуждений в комментариях), что для очень простого требования, определенного в разделе " Use case " в начале этого поста, оноНет необходимости использовать RxJS, и на самом деле, если вы не используете RxJS в любой другой части вашей программы, не импортируйте ее просто дляОднако в моем случае я уже импортировал и использовал RxJS в других местах.