场景
要求从大数据拉取数据,用图表得方式展示给页面,8个图表,耗时20s以上,简直无法忍受。
解决
重新看axios文档,发现了axios.all,每次都能看到但是不理解什么时候用。现在终于可以派上用场了嘿。
非常美好:
当遇到很多个请求,而且数据量巨大,而且互不影响得时候麻烦考虑一下并发,可以大大减少页面加载时间
其他请求信息
'application/x-www-form-urlencoded’请求
// 测试
test() {
return service.httpService({
baseURL: service.dfasAuthCenter,
url: "/api/org/test",
method: "post",
data: "code='001'&name='002'",
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
});
}
优化:async+await 结合promise.all实现并行请求
async httpGetDeadlineBonds(_, params, { getState }) {
const [result0, result1] = await Promise.all([getDictionaryDeatil({parentDicCode: "1000103"}), getDeadlineBonds(params)]);
}
又一次优化: 关于promise,当并行请求时,有一次执行失败,想要获取其他成功的内容。