【发布时间】:2021-11-22 18:25:23
【问题描述】:
我整天都在努力让这个工作,但我不知道发生了什么。
我有这个使用 vue v-for 的 html 表(我减少了代码以使其更清晰):
<table id="timeSheet-datatable" class="table table-striped dt-responsive w-100">
<thead>
<tr>
<th>Project</th>
</tr>
</thead>
<tbody>
<tr v-for="(timeSheet,index) in timeSheetListPageable">
<td>{{getProjectById(timeSheet.projectId)}}</td>
</tr>
</tbody>
我有这个js:
async getProjectByIds(param){
var result = '';
await axios
.get(`/project/${param}`).then(response => {
result= response.data.name;
}, response => {
(err) => console.log(err)
});
return await result;
},
getProjectById(param){
const data = this.getProjectByIds(param);
console.log(data)
return data;
},
问题是我不知道为什么返回不起作用,表结果是空格,如果我在getProjectById方法中添加async和await返回是[object Promise]。
getProjectByIdworks 属性内的console.log,它显示了来自 Axios 的正确返回,但返回表不起作用。我已经尝试在此代码中更改很多内容,有什么建议吗?
【问题讨论】:
-
awaited 函数上没有then。你需要做var result = await axios.get(...) -
感谢您的回答。啊,好吧,但是 axios 会怎么样呢?我试着去做,但回报是
[object Promise] -
不要从模板调用 getProjectById。数据应该在挂载的钩子中检索。
标签: javascript html vue.js async-await