5 关于调用以太坊上的智能合约函数的执行的问题

我的问题如下: 当我调用以太坊上的智能合约中的某个函数时,我理应是向以太坊发送了一笔交易。那么当我在DAPP中调用了某个智能合约函数时,如果我的交易没有被矿工所确认,是否我当前的线程就会一直卡主直到这笔交易被矿工所确认?

比如这里我使用web3.py进行函数调用。

myContract = w3.eth.contract(address=address, abi=ABI)
twentyone = myContract.caller.multiply7(3)
******#其他代码

如果我调用multiply7(3),但是这个函数调用的交易没有被矿工所包含,一直等不到返回值,我的线程是否就会卡死在这里?无法执行后面的其他代码。

如果如我所描述的一般,那是否有什么解决方法?如果不是如我所说的,请大家指正,非常感谢。

请先 登录 后评论

最佳答案 2021-10-26 08:38

不是的, 调用合约函数是一个异步过程(默认),你可以简单理解为是发起了一个网络请求,你不一定需要等待结果。

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,2496 浏览
  • grenade 提出于 2021-10-25 17:36