2017-09-01 46 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的本地承诺和任何真正的好承诺库保证一致的回调行为。