gpt4 book ai didi

javascript - VueJS 从 axios promise 中获取值(value)

转载 作者:行者123 更新时间:2023-12-02 23:42:37 26 4
gpt4 key购买 nike

我有这个代码

模板:

<a href="#" class="video" @click.prevent="checkVideo(subItem.id)" :id="subItem.id" data-toggle="modal" data-target="#playerModal">{{subItem.name}}<span>{{getDuration(subItem.id)}}</span></a>

VueJS 功能:

async getDuration(id) {
var duration = '';
await axios.post('/api/v1/checkvideo', {
menu: id
})
.then(function (response) {
console.log(response.data[0].datas.duration)
return response.data[0].datas.duration;
});

//console.log(duration);
//return duration;
},

问题是 console.log 按预期显示值,但在 Vue 渲染上我得到这个 [object Promise] 我想知道如何显示解决 promise 后的值。

感谢您的帮助

最佳答案

你的代码是return axios,它是一个promise对象。如果你想返回最终的持续时间。您应该等待 axios Promise 并返回响应。

async getDuration(id) {
var duration = '';
const response = await axios.post('/api/v1/checkvideo', {
menu: id
})
return response.data[0].datas.duration;
}

已编辑

由于async返回一个promise,[object Promise]将始终呈现在屏幕上。如果您想获取特定 id 的持续时间,我认为这样做是正确的。

data() {
return {
id: null, // Maybe you should store the value of `id` here
duration: null
}
},
mounted() {
this.getDuration(this.id)
},
methods: {
async getDuration(id) {
var duration = '';
const response = await axios.post('/api/v1/checkvideo', {
menu: id
})
this.duration = response.data[0].datas.duration;
}
}

关于javascript - VueJS 从 axios promise 中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56002265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com