为什么我们不能在数据功能中使用异步,但在其他功能中可以使用?例如:
export default {
data: async function () { // not ok
return {
item: null,
}
},
beforeMount: async function() { // this is ok
let result = await axios.get('./data-social.json')
this.item = result.data
},
mounted() {
},
}
我会收到此错误:
[Vue warn]: data functions should return an object:
有什么想法吗?
答案 0 :(得分:2)
在函数前放置async
会将其转换为返回Promise
的函数。 data
方法必须返回object
,而不是Promise
。
async function myFunction () { [code] }
等效于
function myFunction () {
return Promise(function (resolve, reject) {
try {
resolve((function () { [code] })());
} catch (error) {
reject(error);
}
});
}
我建议您删除异步指令。