该fetch 说明书指出,可读流Body包含Body.bodyUsed其最初被设置为标志false,然后被设置为true与任何解析方法的调用。
下面是一个例子:
fetch('/some/path', (res) => {
// res.body.bodyUsed === false
res.json();
// res.body.bodyUsed === true
});
Run Code Online (Sandbox Code Playgroud)
如果您尝试再次调用类似res.json()或的方法res.text(),则会引发异常。
问题是:为什么要使用这种行为?为什么不允许根据需要多次解析该可读流?我没有找到对此事的解释。
附注。在 Chrome(也可能是其他浏览器)中,该标志可以作为res.body.locked.
我正在我的React应用程序中尝试Relay,它默认使用GraphQL.它看起来像这样(Score是一些React.js组件):
Score = Relay.createContainer(Score, {
fragments: {
score: () => Relay.QL`
fragment on Score {
initials,
score,
}
`,
},
});
Run Code Online (Sandbox Code Playgroud)
问题是:我可以使用自定义API函数将数据返回到片段中吗?像这样:
Score = Relay.createContainer(Score, {
fragments: {
score: myCustomFunction(), // It will return a dataset.
},
});
Run Code Online (Sandbox Code Playgroud)