В угловом я строю приложение чата. Я хочу получать новые сообщения каждые x секунд следующим образом: 1. 5 секунд 2. 10 секунд 3. 20 секунд - есть новые сообщения 4. 5 секунд 5. 10 секунд ... и т. Д.
Iустал от repeatWhen
, но, похоже, нет необходимости повторять запрос, только выдает последнее значение завершенной наблюдаемой.
Вот что я получил:
this.delay = 5000;
this.ngxsStore.fetchMessages()
.pipe(repeatWhen(completed => completed.pipe(delay(this.delay))})
.subscribe(resp => this.messages = resp);
fetchMessages(store) {
return this.api.fetchMesages()
.pipe(
tap(resp => {
if (resp) {
store.patchState({
messages: [
...store.getState().messages,
...resp
]
});
}
})
);
}