Javascript 调用response.json()时获取错误

Javascript 调用response.json()时获取错误,javascript,promise,fetch,Javascript,Promise,Fetch,在我的API类中,我有如下代码 let response; try { response = await fetch(requestUrl, { method: 'POST', headers, timeout: REQUEST_TIMEOUT_MS, body: JSON.stringify({ id, accNumber: acctId, invNumber: invId, fromDate, t

在我的API类中,我有如下代码

let response;
try {
  response = await fetch(requestUrl, {
    method: 'POST',
    headers,
    timeout: REQUEST_TIMEOUT_MS,
    body: JSON.stringify({
      id,
      accNumber: acctId,
      invNumber: invId,
      fromDate,
      toDate
    })
  });
} catch (error) {
  throw new Error(
    'Unexpected error occurred while invoking ATOM Invoice API',
    error
  );
}
foo(cloneDeep(response));
const result = await response.json();
--- some more code ---
然后在另一个类中,我实现了
foo
方法

async foo(response){
    let result;
    let errorDescription;
    try {
      result = await response.json();
    } catch (error) {
      logger.error(JSON.stringify(error));
    }
    --- some more code ---
}
运行上述代码时,我从
foo
函数中抛出以下错误:

{
    "name": "FetchError",
    "message": "response timeout at <my request URL in here> over limit: 10000",
    "type": "body-timeout"
}
{
“名称”:“FetchError”,
“消息”:“超过限制时的响应超时:10000”,
“类型”:“正文超时”
}

我想知道为什么会发生这种情况,我应该做些什么来避免这种情况。提前谢谢

foo(cloneDeep(response))为什么?您问我为什么要克隆它,或者为什么要调用
foo
方法?为什么要克隆响应(错误)?您可能需要类似于
foo(response.clone())的东西
如果要克隆响应,请使用库的
cloneDeep
方法。我做错了什么?我很困惑。如果您想多次使用主体,请使用
response.clone()
方法--但为什么要克隆它?