2016-08-18 17 views
0

我想提出一個簡單的讀取調用我的組件,它看起來像這樣獲取回報的承諾,而不是實際的數據,甚至使用後「然後」

var x = fetch(SOME_URL, SOME_POST_DATA) 
      .then((response) => response.json()) 
      .then((responseJSON) => {return responseJSON}); 

    console.log(x); 

呼叫成功執行,但在控制檯打印一個承諾,而不是數據。我在這裏錯過了什麼?

+0

承諾不作任何同步,你不能得到的價值了。使用'x.then(console.log)' – Bergi

回答

6

承諾的方式意味着您需要處理responseJSON裏面的then()的處理程序。由於請求的異步性質,當承諾解析時,外部代碼已經返回。

開始時可能很難找到你的頭,但它與「傳統」AJAX請求非常相似 - 你在回調中處理響應。

爲了把你的例子:

var x = fetch(SOME_URL, SOME_POST_DATA) 
    .then((response) => response.json()) 
    .then((responseJSON) => { 
     // do stuff with responseJSON here... 
     console.log(responseJSON); 
    }); 

更多閱讀:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

+0

已確認必須進行轉換,然後將此轉換傳遞給下一個管道。 –