随着我了解在客户端运行函数的位置,我看到了越来越多的方法。我在看事件。当我在网页上打开应用程序时,events客户端(比如Metamask)是否加载了合同中的所有事件?这是最主要的活动吗?
发布于 2018-08-01 19:18:09
这取决于你所说的应用程序,但它可能不是加载每个事件已经发出-只是最后几个。一次加载一个页面可以保持效率。尽管如此,事件有很多用途。
其中一个大问题是将事务的“返回”值输出到客户端。如果您查看web3规范中的send(),您会注意到没有提到返回值。这是因为web3无法知道需要多长时间才能确认事务。call()函数提供了函数的返回值,因为它只与不需要事务的view/pure函数一起使用。
send()
web3
call()
view
pure
如果您确实想从状态修改函数返回一个值,您可以在它的末尾调用一个事件,然后订阅该事件。每当代表您的调用的事务被确认时,该事件将出现在您的订阅中,提供您的返回值,并让您知道您的呼叫已完成。
https://ethereum.stackexchange.com/questions/55634
相似问题