我试图从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
,但似乎没有任何效果。我错过了什么吗?
答案 0 :(得分:0)
好吧,什么都不返回,因为你没有为变量赋值,你必须在请求完成时将响应数据分配给变量:
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
}
然后,当promise(请求)得到解决后,您可以从组件(this.title
)
如果使用箭头语法,则不必使用自切换。
答案 1 :(得分:0)
您正在返回标题,在将回复分配给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
}}