获取 JSON 的异步函数不返回任何内容
2020-07-10
276
我的项目中有以下函数,我可以从多个文件访问它。
getCountry: async function () {
let country = null
try {
axios
.get('http://ip-api.com/json/')
.then(response => (this.country = response.data.countryCode))
console.log('Country', country)
} catch (error) {
console.log(error)
}
return country
}
它可以在其他文件上运行,但由于某种原因,在这种情况下,我无法在特定文件中成功使用它。
这是我的数据部分:
data() {
return {
model: {
country: '',
state: '',
city: ''
},
country: null
}
},
在安装部分,我尝试执行以下操作:
this.country = await this.getCountry()
if (this.country != null) {
this.model.country = this.country
}
该值从未分配给 model.country。 当我检查 this.country 值时,它会从函数中获取结果。 我想这可能与它是一个异步函数有关,但我不确定该怎么做。
1个回答
await
应该在
async
函数内部使用,而不是在函数外部使用。
请尝试
getCountry: async function () {
let country;
try {
const response = await axios.get('http://ip-api.com/json/');
country = response.data.countryCode;
} catch (error) {
console.log(error)
}
return country
}
Praveen Dass
2020-07-10