gpt4 book ai didi

typescript - 为什么在解构响应对象后引发 "Failed to execute ' json' on 'Response'"错误

转载 作者:行者123 更新时间:2023-12-04 15:44:18 39 4
gpt4 key购买 nike

我正在实现我自己的 fetch 方法,该方法使用 fetch API .在执行此操作时,我遇到了一个我无法解释的错误。

代码片段如下所示:

    const response: Response = await fetch(url, options);
const { json } = response;

return json();

问题是这段代码触发了 promise 拒绝:

TypeError: Failed to execute 'json' on 'Response': body stream is locked

我知道 json 方法只能调用一次,确实如此。
fetch 本身不会失败。如果我直接返回 response.json(),则不会出现拒绝。

我的问题是为什么在response对象上使用解构赋值,锁定响应的body,它是一个ReadableStream

最佳答案

发生这种情况的原因是解构对象导致 json 方法与 response 的原始范围分离。

一个解决方案是:

    const response: Response = await fetch(url, options);
const { json } = response;

return json.bind(response)();

关于typescript - 为什么在解构响应对象后引发 "Failed to execute ' json' on 'Response'"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56526647/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com