这个有两种方法
一是回调嵌套的方法
二是es7的async/await方法
先说第一种,回调的方法。//获取用户登录成功后的信息
getUserInformation() {
let userInformation = {};
let self = this;
return new Promise((resolve,reject)=>{
self.$axios.get(RESAPI.getNowUserInfo,{
params: {}
}).then(response=>{
return resolve(response);
})
}).then((response)=>{
let user = response.data.data;
self.orgCode = user.orgCode; //将b函数需要的值赋值给data中的orgCode
//sessionStorage.setItem("user",user.orgCode); // 没必要
self.getAllServerRoomInfo(self.orgCode); //执行getAllServerRoomInfo方法,传入实参
})
},
//获取所有机房信息及其附属架构 value为形参
getAllServerRoomInfo(value) {
let URL = RESAPI.getAllServerRoomInfo;
let self = this;
// console.log(self.orgCode)//获取不到a函数传过来的值
// let org = sessionStorage.getItem("user");
let org = value; //调用的时候value 就等于a函数传过来的值。
let data = {
org_code: 1
};
return new Promise((resolve,reject)=>{
self.$axios
.get(URL, {
params: data
})
.then(response => {
return resolve(response);
})
.catch(err => {
return reject(err);
console.log(err);
});
}).then((response)=>{
self.allRoomData = response.data.data.datas;
let device = JSON.stringify(response.data.data.datas);
self.infos = response.data.data.infos;
window.localStorage.setItem('devices',device);
self.stageCanvas();
})
},
第二种就简单多了async getUserInformation() {
let userInformation = {};
let self = this;
var info,roomInfo;
await info = self.$axios.get(RESAPI.getNowUserInfo,{params: {}})
let URL = RESAPI.getAllServerRoomInfo;
let data = {
org_code: info.data.data.orgCode
};
await roomInfo = self.$axios.get(URL, {params: data})
self.allRoomData = roomInfo.data.data.datas;
let device = JSON.stringify(roomInfo.data.data.datas);
self.infos = roomInfo.data.data.infos;
window.localStorage.setItem('devices',device);
self.stageCanvas();
}