首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >所有请求逐个返回,而不是并发返回

所有请求逐个返回,而不是并发返回
EN

Stack Overflow用户
提问于 2019-05-08 01:17:14
回答 1查看 86关注 0票数 0

你能帮我解决我的代码吗?我需要并发运行请求,但get请求一个接一个。下面的代码示例(使用VueJS方法/函数)

代码语言:javascript
运行
复制
async manageData() {
   // array of chart's properties
   const charts = await axios.post('/report/chart_data', {id: this.id);
   // concurrent requests with variable 'charts'
   const result = await Promise.all(
      charts.map((chart, key) => axios.post('/report/data_range', {id: key}))
   );
}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-08 01:30:43

代码语言:javascript
运行
复制
   const charts = await axios.post('/report/chart_data', {id: this.id);

将发出单个请求,并等待它完成,然后再继续。这是必要的,因为您随后将使用charts响应来形成后续请求。

代码语言:javascript
运行
复制
      charts.map((chart, key) => axios.post('/report/data_range', {id: key}))

将使charts.length数量的请求并行。根据您的描述,这是可取的,因为它看起来请求是独立的。

您的屏幕截图支持这种分析(第一个请求正在等待响应,然后才会并行进行后续请求)。

如果知道索引响应的长度,就可以并行化第一个和后续的请求,因为您只使用key ( charts )而不是实际的chart来执行后面的请求。

如果你关心为什么后面的请求似乎需要稳定增加的响应时间,这可能只是每个请求的复杂性的巧合,或者,就像用户ctt@在评论中指出的那样,可能表明你的后端没有同时处理这些请求。但这似乎不是你所关心的(根据你的评论)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56027589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档