我使用vue.js3与vite和axios。
我用这个函数定义了一个TS文件:
export async function findAllCompanies() {
try {
const {data, status} = await axios.get<CompanyPojoResponse>(
'http://localhost:9050/api/v1/company/all',
{
headers: {
'Content-Type': 'application/json',
Authorization: 'Basic YWRtaW46YWRtaW5QYXNz',
},
},
);
console.log(JSON.stringify(data, null, 4));
// ?? "response status is: 200"
console.log('response status is: ', status);
return data;
} catch (error) {
if (axios.isAxiosError(error)) {
console.log('error message: ', error.message);
console.log('error message: ', error);
return error.message;
} else {
console.log('unexpected error: ', error);
return 'An unexpected error occurred';
}
}
}
然后,我尝试在vue文件中显示它:
<script setup lang="ts">
import type {CompanyPojo} from "@/rest/restapi-companies";
import {findAllCompanies} from "@/rest/restapi-companies";
let companyResult = findAllCompanies()
console.log(companyResult)
</script>
<template>
<div class="top-nav">
<nav>
<RouterLink to="/new-company">New Company</RouterLink>
<!-- view product list -->
<!-- create new product -->
</nav>
</div>
<table id="companyTable">
<thead>
<tr>
<th>JUST EVERYTHING....</th>
</tr>
</thead>
<tbody>
<tr v-for="company in companyResult">
<td>{{ company }}</td>
</tr>
</tbody>
</table>
</template>
我在日志中看到结果,但在尝试访问字段的页面(添加公司仅用于测试)中没有:{{company.name}} {{公司其他名称}}
只是导致错误,即CompanyPojoResponse没有这些字段。
我真的不明白,因为:
export type CompanyPojoResponse = {
data: CompanyPojo[];
};
我认为我在这一点上循环数据,然后我在CompanyPojo-Objects上循环...
1条答案
按热度按时间rqmkfv5c1#
您的
findAllCompanies()
是一个异步函数,您没有等待承诺得到解决。你可以这样做: