鍍金池/ 問答/Linux  HTML/ vue.js axios同步

vue.js axios同步

問題描述

vue.js axios請(qǐng)求b需要axios請(qǐng)求a成功后返回的數(shù)據(jù),我將axios請(qǐng)求a成功后的數(shù)據(jù)儲(chǔ)存到data中的一個(gè)變量,但是在生命周期鉤子函數(shù)created中先調(diào)用a再調(diào)用b可是在b函數(shù)中接收不到a函數(shù)的數(shù)據(jù)。

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

我儲(chǔ)存到vuex中也不行

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)

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函數(shù)需要的值賦值給data中的orgCode
    sessionStorage.setItem("user",user.orgCode);
  })
},
getAllServerRoomInfo() {//獲取所有機(jī)房信息及其附屬架構(gòu)
  let URL = RESAPI.getAllServerRoomInfo;
  let self = this;
  console.log(self.orgCode)//獲取不到a函數(shù)傳過來的值
  let org = sessionStorage.getItem("user");
  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();
  })
},

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

回答
編輯回答
淺淺

clipboard.png
created中你是如何調(diào)用的?建議上一下代碼。

或者在a方法請(qǐng)求成功的then中調(diào)用b方法

clipboard.png

2018年8月7日 06:17