Что означает «тогда (res => res.json ())» в 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
        });

person Aniket Singh    schedule 05.10.2017    source источник
comment
Как это можно обновить? Это не показывает никаких усилий. ОП даже не знает, что такое =>. Это можно просто решить, просмотрев SO и документацию.   -  person Weedoze    schedule 05.10.2017


Ответы (3)


На самом деле это не вопрос реакции, поскольку fetch, а затем являются частью самого js.

fetch возвращает объект как обещание, которое содержит различную информацию, такую ​​как заголовки, статус HTTP и т. д. и т. д.

У вас есть res.json() и множество других возможностей. .json() просто вернет тело как обещание с содержимым json.

Для получения дополнительной информации: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

Вы можете вернуть данные следующим образом:

  • .arrayBuffer()
  • .blob()
  • .json()
  • .text()
  • .formData()
person GottZ    schedule 05.10.2017
comment
Хорошо, но что это значит, когда между res и res.json() стоит знак => @GottZ - person Aniket Singh; 05.10.2017
comment
это называется лямбда. это также часть javascript. перейдите сюда для получения дополнительной информации об этом: developer.mozilla. org/en-US/docs/Web/JavaScript/Reference/ - person GottZ; 05.10.2017
comment
@AniketSingh, короче говоря, это .then(function(res){return res.json()}). - person GottZ; 05.10.2017
comment
но не рекламируйте лямбды сейчас. this будет отличаться внутри лямбда-выражений и будет ссылаться на окружающую область. - person GottZ; 05.10.2017

Ваша часть кода:

res => res.json()

— это стрелочная функция ES6, которая переведено на:

function(res){
    return res.json();
}

И о функции json():

Метод json() миксина Body берет поток ответов и считывает его до завершения. Он возвращает обещание, которое разрешается с результатом синтаксического анализа основного текста в формате JSON.

Подробнее читайте здесь.

person Duc Filan    schedule 05.10.2017

Функция 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() также можно записать как (но не точно равны)

function(res) { return res.json()}
person sabithpocker    schedule 05.10.2017