2017-09-01 183 views
-1

爲了便於解釋'then'的含義,有誰能告訴我這段代碼中發生了什麼嗎?在ReactJS中使用'then'

fetchComments().then(response => { 
     this.setState({ 
     comments: response.comments 
     }); 
    }); 
+1

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/然後 –

+0

我在這裏問,因爲我從那裏不明白。 –

+1

文檔的哪一部分不清楚?無論如何,要求查找教程的問題都是SO的主題。 –

回答

2

fetchComments返回承諾(可能是,它可能只是一個 「thenable」 *)。承諾是在稍後的時間點(通常爲**)解決或拒絕的。 then用於連接將在解析承諾時調用的處理函數(並且可以選擇何時拒絕,如果將第二個函數傳遞到then;否則將使用catch)。

在這種情況下,該代碼說,當/如果承諾通過fetchComments做出決議回,使用分辨率值的comments財產使用的分辨率值的陣營組成的set the state

更多關於承諾this MDN articlethe Promises/A+ spec


*請參閱承諾/ A +規範什麼是「可容納」。

**如果你在一個承諾,就是已經解決或拒絕使用then,你在JavaScript中的原生的承諾,你的處理器將仍然被異步調用保證。對於一些早期的類似promise的實現來說,情況並非總是如此,它們會異步地調用您的回調(如果承諾尚未解決)或同步(如果是),這是......混亂且無益的。 JavaScript的本地承諾和任何真正的好承諾庫保證一致的回調行爲。