vue 返回值显示[object Promise]怎么办
时间: 2023-12-02 11:03:38 浏览: 687
vue中利用Promise封装jsonp并调取数据
当 Vue 方法返回一个 Promise 对象时,如果直接将其渲染到页面上,会显示 `[object Promise]`,这是因为 Promise 对象本身是一个 JavaScript 对象,而不是一个字符串或数字等基本类型数据。
要在 Vue 中正确地显示 Promise 的返回值,你可以使用 `async/await` 或 `.then()` 方法来处理 Promise 对象并将其转换成你想要的数据类型或字符串。例如,如果你的方法返回一个 Promise 对象,并且你想将其返回值渲染到页面上,你可以这样做:
使用 `async/await`:
```
<template>
<div>{{ result }}</div>
</template>
<script>
export default {
data() {
return {
result: ''
}
},
async mounted() {
this.result = await this.asyncMethod()
},
methods: {
asyncMethod() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Hello world!')
}, 1000)
})
}
}
}
</script>
```
使用 `.then()`:
```
<template>
<div>{{ result }}</div>
</template>
<script>
export default {
data() {
return {
result: ''
}
},
mounted() {
this.asyncMethod().then(result => {
this.result = result
})
},
methods: {
asyncMethod() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Hello world!')
}, 1000)
})
}
}
}
</script>
```
这样,你就可以正确地在 Vue 中显示 Promise 的返回值了。
阅读全文