为什么 fetch Body 对象只能读取一次?
Why fetch Body object can be read only once?
fetch
specification 声明可读流 Body
包含 Body.bodyUsed
标志,该标志最初设置为 false
然后设置为 true
调用任何解析方法。
这是一个例子:
fetch('/some/path', (res) => {
// res.body.bodyUsed === false
res.json();
// res.body.bodyUsed === true
});
如果您尝试再次调用 res.json()
或 res.text()
之类的方法,则会抛出异常。
问题是:为什么要使用这种行为?为什么不允许根据需要多次解析该可读流?我没有找到任何解释。
PS。在 Chrome(可能还有其他浏览器)中,该标志可以作为 res.body.locked
.
访问
The question is: why that behavior is used? Why not to allow parsing
that readable stream as many times as one wants?
可以多次读取Response.body
fetch
specification 声明可读流 Body
包含 Body.bodyUsed
标志,该标志最初设置为 false
然后设置为 true
调用任何解析方法。
这是一个例子:
fetch('/some/path', (res) => {
// res.body.bodyUsed === false
res.json();
// res.body.bodyUsed === true
});
如果您尝试再次调用 res.json()
或 res.text()
之类的方法,则会抛出异常。
问题是:为什么要使用这种行为?为什么不允许根据需要多次解析该可读流?我没有找到任何解释。
PS。在 Chrome(可能还有其他浏览器)中,该标志可以作为 res.body.locked
.
可以多次读取The question is: why that behavior is used? Why not to allow parsing that readable stream as many times as one wants?
Response.body