web-dev-qa-db-ja.com

axios getの外部で変数を設定する方法

空のため、この関数を使用して値を返すことができません。

getNameById (id) {

    var name = ''

    axios.get('/names/?ids=' + id)
      .then(response => {
        this.response = response.data
        name = this.response[0].name
      })
      .catch(e => {
        this.errors.Push(e)
      })
    // Is empty
    console.log('Name ' + name)
    return name
  }

「then」内のname変数にアクセスして返すにはどうすればよいですか?

6
John

代わりにpromiseを返す必要があります。

getNameById (id) {
  return axios.get('/names/?ids=' + id)
      .then(response => {
        this.response = response.data
        return this.response[0].name
      })
  }

そしてそれを使う:

getNameById(someId)
  .then(data => {
    // here you can access the data
  });
12
Ioan