2017-10-05 65 views

回答

1

這不是一個真正的反應問題,因爲獲取然後是js本身的一部分。

獲取返回一個對象作爲無極包含類似的報頭的各種信息,HTTP狀態等等,等等

你有res.json()和各種其他的可能性。 .json()將僅以json內容的承諾返回主體。

欲瞭解更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

可以返回數據如下:

  • .arrayBuffer()
  • .blob()
  • .json()
  • .text()
  • .formData()
+0

很好,但是當'res'和'res.json()'@GottZ –

+0

之間存在'=>'符號時,這就是所謂的lambda。這也是JavaScript的一部分。去這裏獲得更多關於它的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions – GottZ

+0

@AniketSingh它基本上是'.then(function(res){return res。 json()})簡而言之。 – GottZ

1

您的代碼部分:

res => res.json() 

ES6 arrow function,其被翻譯成:

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

而且,關於json()功能:

json()方法正文mixin需要響應流和 將其讀取完成。它返回一個承諾,將解析正文文本的結果作爲JSON解析爲 。

瞭解更多here

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()}