Как получить данные из ответа Axios вне функции вызова - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь получить заголовок видео из GET Axios в API видео:

// METHOD GETTING A VIDEO ID:

latestVideo(videoID) {

  var self = this;
  var title;

  axios.get('http://video-api.dev/'+videoID)
  .then(response => {
    this.title = response.data.title
    console.log(response.data.title) //returns the correct title
  })
  return title // returns nothing

}

Журнал консоли показывает заголовок, но мне нужно передать его за пределы функции вызова, чтобыон доступен в моем приложении Vue.

Я пытался объявить var self=this, но, похоже, это не имеет никакого эффекта.Я что-то пропустил?

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Вы возвращаете заголовок, при назначении ответа на this.title попробуйте вернуть this.title.Я предполагаю, что latestVideo живет в классе

class x {

latestVideo(videoID) {
    axios.get('http://video-api.dev/'+videoID)
    .then(response => {
        this.title = response.data.title
        console.log(response.data.title) //returns the correct title
    });

    return this.title
}}
0 голосов
/ 05 июня 2018

Ну, ничего не возвращает, потому что вы не присваиваете значение переменной, вам нужно будет присвоить данные ответа переменной при выполнении запроса:

latestVideo(videoID) {

  // var self = this;
  // var title;

  axios.get('http://video-api.dev/'+videoID)
  .then(response => {
    this.title = response.data.title
    console.log(response.data.title) //returns the correct title
  })
  // return title // not needed

}

Затем, когда обещание (запрос) разрешен, вы можете получить доступ к переменной из компонента (this.title)

Вам не нужно использовать переключатель самообслуживания, если вы используете синтаксис стрелки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...