Angular Перехватчик не может правильно рассчитать время ответа API при одновременном выполнении нескольких запросов - PullRequest
0 голосов
/ 14 июля 2020

Шаги для воспроизведения проблемы:

  1. Первый ответ на вызов API приходит через 600 мс.
  2. в течение первого времени ответа на вызов API еще 4 запроса API отправляются перехватчику и этот процесс занимает еще 1 секунду.

Проблема в том, что перехватчик обрабатывает запрос в качестве приоритета, но ответ на первый вызов API готов через 600 мс, но он возвращает ответ один раз Все запросы обрабатываются , означает около 1,6 секунды, что не является правильным расчетным временем.

Лог c для расчета времени ответа API.

const startTime = new Date().getTime();

next.handle(req).pipe(
  map((event) => {
     const endTime = new Date().getTime();
     const diff = (endTime - startTime)/1000 + 'Seconds'; 
     return event;
  })
)

1 Ответ

0 голосов
/ 17 июля 2020

У меня возникла проблема, при переходе с одной страницы на другую я отправил API задачи. этот API задачи отправки имеет еще один вызов API, совместимый с подарочной картой, мы вызываем этот API в режиме async / subscribe и переходим на следующую страницу на основе вызова API submitTask. Когда запускается следующая страница, в этот раз загружается много вызовов Splunk, идущих к перехватчику, и все вызовы Splunk синхронизируются / topromise, поэтому он регистрируется в основном потоке, поскольку вызов giftcardcompatability является вызовом asyn c, так что он регистрируется в событии l oop и событие l oop выполняются после основного l oop, поэтому ответ приходит после вызовов syn c.

...