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

jimmy jimmy 提出于 2021-01-16 20:12 5772 浏览

我在使用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

Tiny熊

擅长:智能合约,以太坊 · 采纳率 33% · 回答于 2021-01-16 23:01

其它 0 个回答

写回答

你需要登录后才可以回答问题,登录