На данный момент у меня есть веб-страница, на которой выполняется длинный список вызовов Ax ios POST. Теперь кажется, что запросы отправляются параллельно (JavaScript продолжает отправку следующего запроса до получения результата).
Однако результаты, похоже, возвращаются один за другим, а не одновременно. Допустим, один POST-вызов скрипта PHP занимает 4 секунды, и мне нужно сделать 10 вызовов. В настоящее время это займет 4 секунды на звонок, что в общей сложности составит 40 секунд. Я надеюсь найти решение для обоих и получить все результаты примерно в одно и то же время (~ 4 секунды) вместо ~ 40 секунд.
Теперь я читал о потоках, многопоточность которых NodeJS с использованием Workers. Я читал, что JavaScript сам по себе является однопоточным, поэтому он сам по себе не может этого допустить.
Но я не уверен, откуда отсюда go. У меня есть только идеи. Я не уверен, направляюсь ли я в правильном направлении и, если да, я не уверен, как использовать Workers в NodeJS и применить это в моем коде. По какой дороге мне идти? Любое руководство будет высоко ценится!
Вот небольшой пример кода:
for( var i = 0; i < 10; i++ )
{
window.axios.post(`/my-url`, {
myVar: 'myValue'
})
.then((response) => {
// Takes 4 seconds, 4 more seconds, 4 more seconds, etc
// Ideally: Takes 4 seconds, returns in the same ~4 seconds, returns in the same ~4 seconds, etc
console.log( 'Succeeded!' );
})
.catch((error) => {
console.log( 'Error' );
});
// Takes < 1 second, < 1 more second, < 1 more second, etc
console.log( 'Request sent!' );
}