2017-10-13 284 views
-1

我有存储在数据库中的税率数据(以允许更新税率)。在JavaScript中,所有数据库操作都是异步的,这意味着我必须使用承诺或回调才能访问查询的结果。有没有办法在一个模块中从数据库检索值,并在其他模块中以同步方式使用这些值?同步使用异步值

我在问这个问题,因为根据诺言值反应渲染组件是件痛苦的事情。谢谢!

+1

这是正确的做法,并有充分的理由 - 我建议使用承诺并习惯它们。然后他们将不再是一个痛苦:) – Shadow

+1

一瞬间想到,你会意识到不可能'同步使用异步值'是 –

+1

有两种类型,而那些不。 JavaScript代码,那些理解异步代码的代码 –

回答

2

在一个函数中,您现在可以使用asyncawait关键字以同步感觉的方式使用promise。然而,你实际上不能将一个异步操作变成一个完全正常的同步函数,它立即返回一个值,不(不会做出你不想做的疯狂事情)。

为了使基于在反应的承诺值的成分,使this.state空间的价值,是指this.state.yourValuerender()方法,然后在componentDidMount()要求的承诺,在更新状态时,它的准备。 Here's a JSFiddle example