【发布时间】:2021-08-16 02:49:20
【问题描述】:
我是 Vue 的新手,对于这个项目,我正在尝试使用过滤器功能来格式化我的时间值。当我在返回之前使用console.log(data) 时,它看起来像正确打印数据,但是当我返回时,它显示[Object Promise]。如何将 [Object Promise] 转换为实际时间数据?
JSFiddle 代码链接 = https://jsfiddle.net/ujjumaki/j0wf5ohg/11/
查看
<div v-for="(item,index) in fetchDetails" :key="item.id">
<p>{{ item.time | formatData(item.time)}}</p>
</div>
过滤功能
filters: {
async formatData (value) {
const response = await axios.get(process.env.VUE_TABLE+'/'+value)
const data = await response.data.time
console.log(data); /** prints out the value as CHRIS **/
return data
}
}
数据
data: {
fetchDetails: [
{ time: "75", id: 1 },
{ time: "124", id: 2 },
{ time: "93", id: 3 },
]
},
【问题讨论】:
-
async函数总是返回到Promise。因此,获取实际值的唯一方法是在组件中创建一个状态变量,并将值注入其中打印数据的位置。 -
我不喜欢 Vue,但似乎有一些 pretty strong arguments 反对使用异步过滤器。
标签: vue.js async-await promise axios