有了松露,我们得到了一个很好的合同包装器。但这有一个让我头疼的功能:
来自documentation的示例:
MetaCoin.at(contract_address).then(function(instance) {
coin = instance;
return coin.sendCoin(account_two, 3, {from: account_one});
}).then(function(result) {
// This code block will not be executed until truffle-contract has verified
// the transaction has been processed and it is included in a mined block.
// truffle-contract will error if the transaction hasn't been processed in 120 seconds.
})
这引起了四个问题:
function(result, error)
)或整个对象(.then( function(result) {...} ).catch(e)
)的回调中?我无法在Ganache上进行本地测试。特别是问题1使我头疼。
致谢
答案 0 :(得分:1)
超时只是松露的事情。网络不会超时,并且当使用web3或类似的包装器开发应用程序时,您只需继续收听,直到tx成为矿工或页面关闭为止。
在web3中进行交易时,即使在被挖掘之前,您也会收到txhash作为响应的一部分。您可以将其与待处理状态一起显示给用户,并可以使用Web3的筛选器在挖掘时为回调设置侦听器,而不会遇到超时问题。