Не уверен, почему ответ, предоставленный @ Davy , еще не отмечен зеленой галочкой.
Это рабочее решение, которое можно использовать без привязки к неудачной выборке.
Вот рабочая демонстрация, построенная с Angular 8 .
Попробуйте это с регулированием сети (скажем, «Медленный 3G») и обратите внимание на причудливый анимированный кружок, который отображается каждый раз, когда в очереди запросов приложения есть хотя бы один HTTP-запрос (подробнее см. В исходный код).
Если вы внимательно посмотрите на сетевые запросы, то увидите, что предыдущие ожидающие запросы XHR будут отменены при получении нового ввода от пользователя (обратите внимание, что GitHub API накладывает ограничение на количество запросов HTTP GET, поэтому используйте в противном случае вы получите код возврата HTTP 403).
Подход, предложенный @Davy, работает нормально, если вы не сделаете что-то интересное и не нажмете Cmd + S (Ctrl + S на ПК), пока есть ожидающий запрос.
В этом случае обработчик финализации не будет вызван, потому что весь процесс был прерван собственным модальным диалогом.