我使用web3有一个简单的事件订阅:
contract.events.EventName().on('data', async event => {console.log(event)})
由于某种原因,事件使用web3触发两次(换句话说,在本例中事件被记录两次),尽管事件在区块链上只触发一次。
这也发生在getPastEvents:
contract.getPastEvents("Event").then(events => console.log(events))
contract.getPastEvents("Event").then(console.log('a'))
奇怪的是,第一个被触发两次,第二个只触发一次
如果事件没有触发两次,则打印两次日志。
第一个在代码片段中:
contract.events.EventName().on('data', async event => {console.log(event)})
第二个在这个代码片段中:
contract.getPastEvents("Event").then(events => console.log(events))