什么'然后(res => res.json())'反应原生取指是什么意思?

时间:2017-10-05 06:52:06

标签: javascript react-native jsx fetch-api

下面在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
        });

3 个答案:

答案 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返回PromisePromise帮助异步部分,并在资源加载了获取的资源作为参数后运行传递到thenres => 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()}