目前我有一个网页,在其中进行一长串的Axios POST调用。现在,这些请求似乎是并行发送的(JavaScript在收到结果之前继续发送下一个请求)。
但是,结果似乎是一个接一个地返回,而不是同时返回的。假设对PHP脚本进行一次POST调用需要4秒,并且我需要进行10个调用。 目前每个调用需要4秒,总共需要40秒。我希望找到一个解决方案,以便同时(约为4秒)接收所有结果,而不是~40秒。
现在我已经了解了关于线程、在NodeJS使用Workers进行多线程编程的知识。我已经了解到JavaScript本身只能单线程运行,因此可能无法实现这一点。
但是我不确定从哪里开始。我只有一些想法。我不确定我是否朝着正确的方向前进,如果是,我不确定如何在我的代码中使用Workers。我应该采取哪条路?任何指导将不胜感激!
这里是一个小的示例代码:
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!' );
}
XMLHttpRequest
,得到相同的结果:sb-axios-xhr-conccurent。 - Christos Lytras