Я столкнулся с некоторой проблемой производительности в приложении Angular, которое запрашивает бэкэнд через конечные точки API.
Это открывает конечную точку, которую мне нужно назвать огромным количеством времени (> 2000) как можно быстрее.
Таким образом, я перебираю Set и для каждого элемента вызываю службу, которая вызывает метод get HttpClient.Это выглядит примерно так:
this.itemList.forEach((item: Item) => {
this.itemWsService
.getItemComputation(item)
.subscribe(// callback method);
});
Проблема в том, что я не получаю желаемых результатов.
Чтобы понять, что замедляет работу приложений, я измерил:
- дата выполнения вызова метода HttpClient
- дата получения запроса Http о получении на бэкэнде (с использованием logback-access )
В результате (показанном на рисунке ниже) я получаю запросы на серверную часть спустя много секунд после выполнения метода в Angular.
Диаграмма
Мой вопрос: является ли Angular своего рода ожиданием перед выполнением вызова метода get?Может ли быть какое-то узкое место, препятствующее параллельному выполнению http-запросов?Как этого избежать?
Я запускаю внешний интерфейс Angular и серверную часть Java + Spring на одном компьютере и встраиваю Angular в собственное приложение с помощью Electron.