我有这段代码可以发出 GET HTTP 请求。
使用 fetch 时,它可以工作,但使用 axios 时它永远不会完成。
到目前为止我尝试过的是这样的:
getParentAssetTemplateList = async (tenantId: string, signal?: AbortSignal): Promise<any> => {
const headers = {
tenantId: tenantId,
...this.defaultHeaders
};
const url = getEndpoint('/asset-templates/dropdown/flat');
// const response = await fetch(url, {
// signal,
// headers
// }).then((res) => res.json());
// console.log('response: ', response);
// return response;
const response = await axios.get(url, {
signal,
headers
});
console.log('response: ', response.data);
return response.data;
};
我所说的完成是指,当使用Fetch时,调试点到达console.log。
但是对于 Axios,它无法到达 console.log 行,但是当我检查网络工具时,我看到响应为 200 OK,并具有预期的数据。
有时你需要将await关键字包装在另一个await中:这意味着你修改后的代码就像下面的代码片段:
const response = await (await axios.get(url, {
signal,
headers
}));
如果您在此处记录响应,您可以看到完整的数据。