Почему возникает ошибка «Не удалось выполнить json для« Response »после разрушения объекта ответа» - PullRequest
1 голос
/ 10 июня 2019

Я реализую свой собственный метод fetch, использующий API fetch .При этом я столкнулся с повышенной ошибкой, которую не могу объяснить.

Фрагмент кода выглядит следующим образом:

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

    return json();

Проблема этот код вызывает отклонение обещания:

TypeError: Не удалось выполнить 'json' для 'Response': поток тела заблокирован

Я знаю, что json метод может быть вызван только один раз, что он и делает.
Сам fetch не дает сбоя.Если я вернусь напрямую response.json(), отказов не будет.

Мой вопрос , почему при использовании назначения деструктуры объекта response блокируется body ответа, который является ReadableStream.

1 Ответ

1 голос
/ 10 июня 2019

Причина, по которой это происходит, заключается в том, что деструктуризация объекта приводит к отделению метода json от исходной области действия response.

Одно решение будет:

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

    return json.bind(response)();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...