Fetch API does not support getReader (response.body is undefined)
未关闭
还没有人认领这个 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();
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 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