@TyllerDurden

Как выполнять код последовательно?

Здравствуйте. Пишу подгрузку постов при скролле до последнего. Код выглядит следующим образом, все лишнее убрал:

let articles = document.querySelectorAll('.main-content .article');
let articleLast = articles[articles.length - 1]; //получаем последний пост

if(pageYOffset >= articleLast.getBoundingClientRect().height){ //и когда скроллим до него..
 //содержимое успевает выполниться несколько раз, а нужно, чтобы только один
});


Когда доскролливаю до последнего загруженного поста, то происходит подгрузка других постов. Но проблема в том, что вместо одного запроса к бд происходит несколько. Т.к. пока новый последний пост не подгружен, и скролл продолжается, то условие выполняется, а потому он подгружает снова и снова, пока не выполнится первый запрос. Что здесь можно предпринять?
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
if (requestInProgress) {
  return;
}
requestInProgress = true;
const data = await fetch(...);
// отображаем данные
requestInProgress = false;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы