同时多个请求_axios多并发请求
有时候需要同时进行多个请求,并在多个请求结束后执行一个动作,可以利用axios.all
引用:
import { ajax, axios } from 'common'
const request = {
login (context, account, pwd) {
var v = ajax.everyOne(context).get(context, "/Login/login", {
account: account,
pwd: pwd
});
return v;
},
getMenus (context) {
return ajax.get(context, "/microapps/SysMenu/GetPCMenu");
},
userAuthorize (context) {
return ajax.get(context, "/microapps/SysMenu/UserAuthorize");
}
};
实现
var requestMenu = request.getMenus(this)
var requestAuthorize = request.userAuthorize(this)
axios.all([requestMenu, requestAuthorize]).then(axios.spread((resMenu, resAuthorize) => {
debugger
this.$store.dispatch("global/updateUserMicroApps", resMenu.data.apps);
this.$store.dispatch("global/updateMenu", resMenu.data.menus);
this.$store.dispatch("global/updateUserAuthorize", resAuthorize.data);
var url = "/common/home"
history.pushState(null, url, url)
}))
两个请求执行完成后,才执行axios.spread()
中的函数,且axios.spread()
回调函数的的返回值中的请求结果的顺序和请求的顺序一致
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YESWEB YES开发框架