フェッチAPIfetch
を使用する独自のメソッドを実装しています。これを行っているときに、説明できないエラーが発生しました。
コードフラグメントは次のようになります。
const response: Response = await fetch(url, options);
const { json } = response;
return json();
問題は、このコードがプロミスの拒否をトリガーすることです。
TypeError:「応答」で「json」の実行に失敗しました:ボディストリームがロックされています
このjson
メソッドは一度しか呼び出せないことを知っています。それ自体は失敗しません。直接帰ってもご迷惑をおかけしません。fetch
response.json()
私の質問は、response
オブジェクトで破壊割り当てを使用するbody
と、応答のがロックされる理由ReadableStream
です。
これが発生する理由は、オブジェクトを破棄すると、json
メソッドがの元のスコープから切り離されるためresponse
です。
1つの解決策は次のとおりです。
const response: Response = await fetch(url, options);
const { json } = response;
return json.bind(response)();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加