Я создал компонент нумерации страниц, включающий кнопки «Предыдущая» и «Следующая» по обе стороны от номеров страниц.
Каждый раз, когда они нажимают кнопку в компоненте нумерации страниц (например, номер доступной страницы, следующий или предыдущий), я подписываюсь на функцию в моем сервисе, которая выполняет запрос GET к API.
Это работает, как и ожидалось, однако, если пользователь должен был спамить нажатие на любую из кнопок, он попадает в API несколько раз. Учитывая, что подписка на HTTP-запрос является асинхронной функцией, возвращаемые данные могут быть не самыми последними данными, запрошенными человеком.
Обычно, если пользователь нажимает кнопку 6 раз, но запрос 5 может занять больше времени для извлечения данных, чем запрос 6, поэтому, когда дело доходит до заполнения моего объекта, он перезаписывается данными запроса 5, что не идеально.
Я мог бы отключить нумерацию страниц во время ожидания запроса, однако это может произойти в другое время, и я хочу быть готовым к такой неизбежности.
Каков наилучший способ справиться с этим?