Javascript 调用response.json()时获取错误
在我的API类中,我有如下代码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
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()
方法--但为什么要克隆它?