Fetch 可以工作,但 axios 不行

问题描述 投票:0回答:1

我有这段代码可以发出 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,并具有预期的数据。

javascript reactjs typescript axios fetch-api
1个回答
0
投票

有时你需要将await关键字包装在另一个await中:这意味着你修改后的代码就像下面的代码片段:

   const response = await (await axios.get(url, {
      signal,
      headers
    }));
    

如果您在此处记录响应,您可以看到完整的数据。

© www.soinside.com 2019 - 2024. All rights reserved.