使用'然后'在ReactJS中

时间:2017-09-01 12:30:45

标签: reactjs

为了便于解释'然后'的重要性,有谁能告诉我这段代码中发生了什么?

# /patients/patient/pk/delete
url(r'patient/(?P<pk>[0-9]+)/delete/$', views.patientDelete.as_view(), name='patient-delete'),

3 个答案:

答案 0 :(得分:3)

fetchComments会返回承诺(可能;它可能只是“可以”*)。承诺是稍后将被解决或拒绝的事情(通常为**)。 then用于挂接将在解析promise时调用的处理程序(如果将第二个函数传递给then,则可选择将其拒绝;否则,您将使用catch })。

在这种情况下,该代码表示​​当/ fetchComments返回的承诺解析时,使用该分辨率的comments属性使用React组件的set the state分辨率值值。

有关this MDN articlethe Promises/A+ spec中的承诺的更多信息。

*参见Promises / A +规范,了解“可能”是什么。

**如果您对已经已经解决或拒绝的承诺使用then,那么您可以通过JavaScript中的本机承诺保证您的处理程序仍将被异步调用。对于一些早期的类似承诺的实现来说情况并非总是如此,它们要么异步调用回调(如果承诺尚未解决),要么同步调用(如果是),这是......混乱且无益的。 JavaScript的本机承诺和任何非常好的承诺库都保证了一致的回调行为。

答案 1 :(得分:2)

我稍后回答这个问题,但有时可能会对某人有所帮助。

让我们开始吧:

从上面粘贴的代码中,我可以给您一个提示,只要您在任何Javascript代码段中看到关键字 then ,即使用promise的异步函数。

承诺:除了存储有关这些事件是否发生以及是否发生的信息的对象外,通常,promise将处理成功(在js代码中解决)和失败(在js中拒绝)代码),也两者兼有。因此,当我们创建任何异步函数时,都会在这些异步函数中创建promise。

Promise.then then 允许我们将事件处理程序分配给promise。根据我们提供的参数,我们可以处理成功,失败或两者兼而有之,并且返回then也是一个承诺,这意味着它可以处理更多事件。

最后转到上面的代码,fetchComments是一个约定,它是一个异步函数,当响应为 resolve 时,我们将更新注释的状态,此外,在这里我们还可以处理使用 .catch 或什至添加另一个 then 并结束的错误情况,下面的链接有一个很好的解释:

A nice tutorial on Promise and then in javascript is here

答案 2 :(得分:0)

函数fetchComments将获取数据并返回一个Promise 然后给他们状态注释:)。但我认为你应该阅读hier ^^。

  

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