web-dev-qa-db-ja.com

反応ネイティブフェッチの 'then(res => res.json())'はどういう意味ですか?

反応ネイティブフェッチで以下のスニペットのthen(res => res.json())とはどういう意味ですか?

fetch(url)
      .then(res => res.json())
      .then(res => {
        this.setState({
          data: res,
          error: res.error || null,
          loading: false
        });
7
Aniket Singh

Fetchはjs自体の一部であるため、これは実際に反応する質問ではありません。

fetchは、ヘッダー、HTTPステータスなどのさまざまな情報を含むオブジェクトをPromiseとして返します。

res.json()およびその他のさまざまな可能性があります。 .json()は、jsonコンテンツでpromiseとして本体を返すだけです。

詳細情報: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

次のようにデータを返すことができます。

  • .arrayBuffer()
  • .blob()
  • .json()
  • .text()
  • .formData()
6
GottZ

あなたのコード部分:

_res => res.json()
_

ES6矢印関数 であり、次のように変換されます。

_function(res){
    return res.json();
}
_

そして、json()関数について:

Body mixinのjson()メソッドは、応答ストリームを受け取り、それを最後まで読み取ります。本文をJSONとして解析した結果で解決されるpromiseを返します。

続きを読む こちら

3
Duc Filan

JavaScript fetch 関数は、指定されたurlからリソースを非同期にプルします。一方、fetchPromise を返します。 Promiseは、非同期部分を支援し、フェッチされたリソースをパラメーターとして使用してリソースがロードされると、thenres => res.json())に渡された関数を実行します。フェッチされたリソースは、JSON形式の場合、json()を使用して解析できます。

thenPromiseを返し、チェーン可能にします。

_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()}
_
0
sabithpocker