У меня есть приложение Angular 7, и я использую Rx JS.
Я хочу получать список вещей из конечной точки каждые 30 секунд, но иногда запрос может занять некоторое время и Я хочу учесть это время.
Пример: если запрос занимает 10 секунд, то я хочу вызвать его снова через 40 секунд (30 + 10), а не через 20 (30 - 10).
Я пытаюсь с:
fetchList() {
this.service.fetchListFromHttp()
.pipe(
finalize(() =>
setTimeout(() => {
this.fetchList();
}, 30000)
)
)
.subscribe(
result => this.list = result,
err => this.logError(err)
);
}
Я мог бы представить, что когда http запрашивает, через 30 секунд он вызовет еще один вызов fetchInfo, но в результате получаются странные интервалы. Например, функция вызывается каждые 10 секунд или 20 секунд, и такие странные интервалы. Я предполагаю, что интервал всегда будет больше 30 секунд.