Как отменить все ожидающие Http-запросы перед вызовом нового Http-запроса в angular 6 - PullRequest
0 голосов
/ 13 июня 2019

Я работаю в одном угловом проекте, в котором есть API вызова в последовательности, а ответ API хранится в одной глобальной переменной.

Мой поток API выглядит следующим образом: enter image description here

Объяснение:

  1. Пользователь нажимает кнопку первого запроса, затем первый запрос отправляется на сервер.
  2. Перед отображением данных первого запроса в html, пользователь нажимает нанажмите другую кнопку и сделайте второй запрос API.
  3. здесь ответ первого запроса еще не возвращен сервером и выполните другой запрос.
  4. после этого ответ второго запроса будет первым.
  5. тогда будет получен результат первого запроса.
  6. В это время все результаты будут объединены.но ожидаемый результат выглядит следующим образом:
  7. отменить первый запрос и отобразить только результат второго запроса.

Можно ли сначала отменить все отложенные запросы, а затем сделать еще один запрос.Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 13 июня 2019

Вот как вы можете справиться с этим одним из следующих способов:

а) Лучше было бы использовать счетчик с оверлеем, поскольку вы должны уведомить пользователя о том, что он уже инициировал запрос и ожидает ответа

б) С Observables вы можете использовать «SwitchMap» для отмены ожидающих подписок, см .: SwitchMap

в) Внутри вашего перехватчика сохраните все входящие запросы как пару ключ-значение. Если какой-либо запрос с тем же ключом придет снова, просто отклоните его, однако это отменит последующие аналогичные запросы.

Приветствия (у)

...