react / react/react-native

Fetch API does not support getReader (response.body is undefined)

未关闭
#37,505 17 条评论 20 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

🌐Networking Needs: Triage :mag: Newer Patch Available
主要语言
C++
星标
127k
派生
25.3k
平均合并
1 天 23 小时
30 天内合并 PR
4

描述

Description

When trying to read the response from Fetch as a stream, via getReader(), I get an error saying that resp.body is undefined. Logging the value of resp shows this:

{"_bodyBlob": {"_data": {"__collector": [Object], "blobId": "xxx", "name": "chat.txt", "offset": 0, "size": 42, "type": "text/plain"}}, "_bodyInit": {"_data": {"__collector": [Object], "blobId": "xxx", "name": "chat.txt", "offset": 0, "size": 42, "type": "text/plain"}}, "bodyUsed": false, "headers": {"map": {"cache-control": "no-store", "content-length": "42", "content-type": "text/plain; charset=utf-8", "date": "Sun, 21 May 2023 18:53:09 GMT", "expect-ct": "max-age=2592000, report-uri=\"https://sentry.repl.it/api/10/security/?sentry_key=xxx\"", "replit-cluster": "hacker", "strict-transport-security": "max-age=6123043; includeSubDomains", "uwebsockets": "20"}}, "ok": true, "status": 200, "statusText": "", "type": "default", "url": "https://xxx.luisafk.repl.co/chat"}

Duplicate of #25701 and #25910, but they were closed.

React Native Version

0.71.7

Output of npx react-native info
System:
    OS: macOS 12.6.3
    CPU: (8) x64 Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz
    Memory: 346.30 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 19.7.0 - ~/.nvm/versions/node/v19.7.0/bin/node
    Yarn: 1.22.15 - ~/.nvm/versions/node/v19.7.0/bin/yarn
    npm: 9.5.0 - ~/.nvm/versions/node/v19.7.0/bin/npm
    Watchman: Not Found
  Managers:
    CocoaPods: Not Found
  SDKs:
    iOS SDK: Not Found
    Android SDK: Not Found
  IDEs:
    Android Studio: Not Found
    Xcode: /undefined - /usr/bin/xcodebuild
  Languages:
    Java: Not Found
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.2.0 => 18.2.0 
    react-native: 0.71.7 => 0.71.7 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found
Steps to reproduce

Try the code example below.

Snack, code example, screenshot, or link to a repository
const resp = await fetch('https://example.com');
const reader = resp.body.getReader();

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先在 React Native 0.71.7 上运行提供的 fetch/getReader 复现,并检查 Fetch API 响应体的行为。当 resp.body 可用,并且 resp.body.getReader() 能够在复现的响应上正常工作且不出现 undefined 错误时,即视为完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
javascript, react
领域
api, mobile
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
冷清
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。