Я пытаюсь использовать RxJS для опроса событий. Тем не менее, у меня есть доступ только к одной функции, которая getEvent()
. Я могу сделать 2 вещи с помощью функции getEvent
:
getEvent("latest")
- это даст мне последний объект события
getEvent(eventId)
- Я передаю целое число, и оно выдаст мне объект события, соответствующий eventId
.
Идентификаторы событий всегда увеличиваются от 0, но проблема в том, что если мой интервал опроса не достаточно мал, я могу пропустить события.
Например, если я делаю getEvent("latest")
и получаю событие с идентификатором 1, это здорово. Но если в следующий раз я позвоню, я получу ID 3, я знаю, что пропустил событие.
В этом случае я хочу использовать наблюдаемый более высокий порядок для вызова getEvent(2)
и getEvent(3)
, чтобы потребителю создаваемого мною потока не приходилось беспокоиться о пропущенном событии.
Прямо сейчас, все, что у меня есть, примерно так:
timer(0, 500).pipe(
concatMap(() => from(getEvent("latest"))
)
Для некоторого контекста я работаю над этим постом: https://itnext.io/polling-using-rxjs-b56cd3531815