关于web3.js 1.0版本中的事件监听问题

我在使用web3.js 1.0版本的过程中,虽然严格对照文档,仍然发现事件监听无法执行,对整个1.0版本还比较迷惑。

编译工具是vscode。

问题1:引入web3的时候,还需要var Web3 = require("web3")吗?疑似不用了。我在head里用script引入了cdn的web3链接,执行的时候调用合约方法都没有问题;反而是var Web3 = require("web3")的时候,控制台告诉我require is not a function

问题2:惟独在搞事件监听的时候失败了,这块和0.2.0版本似乎有巨大的差异,我的solidity代码里事件名为reward,JS代码里写成:

myContract.events.reward ( function(error, event){ if(!error) { console.log(event); } });

结果啥也没执行出来。调试了很久,十分迷惑,望得到大大的解答。

请先 登录 后评论

最佳答案 2021-01-18 14:09

  1. javascript 标准环境里,不支持require, 需要在 node.js 的工程才支持。

  2. 需要监听事件, 与节点的链接协议需要是websocket, 即使用如: ws://localhost:7545, 而不是http://localhost:7545. 可参考这篇文章: https://learnblockchain.cn/2019/12/23/node-dapp

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,3515 浏览
  • jimmy 提出于 2021-01-16 20:12