我如何从ReadableStream
对象获取信息?
我正在使用Fetch API,但从文档中看不出来。
主体以ReadableStream
的形式返回,我只想访问此流中的属性。在浏览器开发工具中的“响应”下,我似乎将此信息以JavaScript对象的形式组织到属性中。
fetch('http://192.168.5.6:2000/api/car', obj)
.then((res) => {
if(res.status == 200) {
console.log("Success :" + res.statusText); //works just fine
}
else if(res.status == 400) {
console.log(JSON.stringify(res.body.json()); //res.body is undefined.
}
return res.json();
})
最佳答案
为了从ReadableStream
访问数据,您需要调用一种转换方法(可从docst here获取文档)。
举个例子:
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(function(response) {
// The response is a Response instance.
// You parse the data into a useable format using `.json()`
return response.json();
}).then(function(data) {
// `data` is the parsed version of the JSON returned from the above endpoint.
console.log(data); // { "userId": 1, "id": 1, "title": "...", "body": "..." }
});
编辑:如果您的数据返回类型不是JSON或您不想使用JSON,请使用
text()
举个例子:
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(function(response) {
return response.text();
}).then(function(data) {
console.log(data); // this will be a string
});
希望这有助于清理问题。