Длительные задержки в отладчике Chrome при параллельных операциях выборки для одного и того же API
Мой интерфейс должен сделать несколько GET
(или же POST
) операции с различной полезной нагрузкой для одного и того же сервиса / API. Эти операции независимы, и поэтому они могут выполняться параллельно. Параллельно я имею в виду:
const fetchResponseJson = async (url, request) => {
const response = await fetch(url, request);
if (response.ok)
return await response.json(); //I'm now sure this is necessary
else
throw new Error('Error loading data from ' + url);
};
const parallelFetches = fetchesData => {
const fetchPromises = [];
_.each(fetchesData, fetchData => {
fetchPromises.push(fetchResponseJson(fetchData.url, fetchData.request);
});
const answers = await Promises.all(fetchPromises);
_.each(answers, answer => { ... } );
}
Теперь, глядя на вкладку "Сеть" в отладчике Chrome, я вижу, что первые 4-5 запросов находятся во времени ожидания (зеленые полосы) все вместе (т.е. они выполняются параллельно), в то время как остальные остаются в Остановленное состояние (серые столбцы) до тех пор, пока не будет выполнен предыдущий запрос.
Это пример:
Теперь мой вопрос: почему это происходит? Так как наша команда определила как сервер, где обрабатываются запросы, так и интерфейс, кто "отвечает" за это?
Извините, если не хватает информации, но я боюсь, что этим я не могу поделиться гораздо большим, чем этот (но, тем не менее, пожалуйста, задайте любой вопрос для уточнения!).