下面在react-native fetch中的代码段中then(res => res.json())
是什么意思?
fetch(url)
.then(res => res.json())
.then(res => {
this.setState({
data: res,
error: res.error || null,
loading: false
});
答案 0 :(得分:3)
自从获取后,这不是一个真正的反应问题,然后是js本身的一部分。
fetch返回一个对象作为Promise,其中包含各种信息,如标题,HTTP状态等等。
您有res.json()
和其他各种可能性。 .json()
将使用json内容将身体作为承诺返回。
了解更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
您可以按如下方式返回数据:
.arrayBuffer()
.blob()
.json()
.text()
.formData()
答案 1 :(得分:3)
您的代码部分:
res => res.json()
是ES6 arrow function,翻译为:
function(res){
return res.json();
}
关于json()
功能:
Body mixin的
json()
方法采用Response流和 读完成。它返回一个与...一起解决的承诺 将正文解析为JSON的结果。
了解更多here。
答案 2 :(得分:0)
Javascript fetch
函数异步从指定的url
中提取资源。同时fetch
返回Promise
。 Promise
帮助异步部分,并在资源加载了获取的资源作为参数后运行传递到then
(res => res.json()
)的函数。如果获取的资源是JSON格式,则可以使用json()
解析。
then
也会返回Promise
,使其可以链接。
fetch(url) // asynchronously load contents of the url
// return a Promise that resolves when res is loaded
.then(res => res.json()) // call this function when res is loaded
// return a Promise with result of above function
.then(res => { // call this function when the above chained Promise resolves
this.setState({
data: res,
error: res.error || null,
loading: false
});
res => res.json()
也可以写成(but not exactly equal)
function(res) { return res.json()}