vue中使用async await遇到的问题

使用async await,await的函数log出了数据,但是async函数获取不到值,并且先打印出undefined,在打印出数据

    getRechargeOrder () {
      let apiUrl = this.$api.URL.rechargeOrder
      this.$api.axiosGet(apiUrl, para).then(res => {
        if (res.data.code === 0) {
          let data = res.data.data
          if (data.payNum) {
            console.log(data)//{payTotal: 3344, payNum: 86, payPeopleNum: 65, list: Array(86)}
            return data
          }
        } 
      }).catch(error => alert('error'))
    },
    async getDau () {
      let res = await this.getRechargeOrder()
      console.log(res)//undefined 
      }

图片描述

阅读 5.2k
1 个回答

你的getRechargeOrder ()里面又没有返回值 当然是undefined啊,正确的做法是getRechargeOrder ()返回一个Promise,得到数据后触发resolve

getRechargeOrder() {
  return new Promise((resolve, reject) => {
    let apiUrl = this.$api.URL.rechargeOrder
    this.$api.axiosGet(apiUrl, para).then(res => {
      if (res.data.code === 0) {
        let data = res.data.data
        if (data.payNum) {
          console.log(data)//{payTotal: 3344, payNum: 86, payPeopleNum: 65, list: Array(86)}
          resolve(data);
        }
      }
    }).catch(error => {
      reject(error)
    })
  })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题