如何在VueJS/NuxtJs中动态调用axios方法

时间:2021-04-07 02:54:41

标签: javascript vue.js vuejs2 axios nuxt.js

我正在尝试优化我的代码。因此,我动态使用 axios 函数,但返回的响应是待处理的 console log。我正在使用 async/await。任何人都可以帮助我。

这是我的代码:

methods: {
  getAgentsNames() {
    const data = this.callAxios('get', `/getAllAgents`)
    console.log(data) // returns pending
    this.agents = data.listings
  },

  async callAxios(method, url, paramsBody = null) {
    try {
      const response = await this.$axios({
        method,
        url,
        params: paramsBody,
        headers: this.headers,
      })
      console.log(response) // success and have response data.
      if (response.data.status == 'ok') {
        return response.data
      } else {
        ifNotOK(response, this.$cookies)
        return null
      }
    } catch (error) {
      console.log(error)
      return null
    }
  },
},

1 个答案:

答案 0 :(得分:1)

你的顶层函数也需要等待调用返回:

async getAgentsNames() {
                let data = await this.callAxios(