Вот возможное решение ответа API, инициирующего новые запросы. Он основан на паре флагов, которые проверяют, может ли приложение выполнять новые запросы.
canLoad
. Он контролирует, может ли приложение загружать новые элементы из API.
pendingLoad
. Сохраняет действие в очереди, которое будет запущено при следующей итерации опроса.
// NgOnInit to set a time interval to check status. Adjust timing to your need.
ngOnInit() {
setInterval( () => {
this.canLoad = true;
if ( this.pendingLoad ) {
this.onScrollDown();
}
}, 2000);
}
Затем, когда сработают функции прокрутки, приложение должно проверить, разрешено ли вызывать API и добавлять новые элементы.
onScrollDown() {
if ( this.canLoad ) {
this.canLoad = false;
this.pendingLoad = false;
// Call API here
this.appendItems(0, apiData);
} else {
this.pendingLoad = true;
}
}
Вот ссылка StackBlitz с демонстрацией.