首页 > 解决方案 > 如何从调用函数之外的axios响应中获取数据

问题描述

我正在尝试从 axios GET 获取视频标题到视频 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,但似乎没有任何效果。我错过了什么吗?

标签: javascriptvue.jsaxios

解决方案


好吧,什么都不返回,因为您没有为变量分配任何值,当请求完成时,您必须将响应数据分配给变量:

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然后,当承诺(请求)得到解决时,您可以从组件( )访问变量

如果您使用箭头语法,则不必使用 self 开关。


推荐阅读