返回介绍

web3.eth.subscribe - 订阅链上事件

发布于 2020-01-19 11:52:16 字数 1339 浏览 3057 评论 0 收藏 0

使用web3.eth.subscribe()方法来订阅区块链上的指定事件。

调用:

web3.eth.subscribe(type [, options] [, callback]);

参数:

  • type:String - 订阅类型
  • options:Mixed - 可选的额外参数,依赖于订阅类型
  • callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个参数为结果

返回值:

EventEmitter - 订阅实例对象,具有以下字段:

  • subscription.id: 订阅id编号,用于标识一个订阅以及进行后续的取消订阅操作
  • subscription.subscribe([callback]): 可用于使用相同的参数进行再次订阅
  • subscription.unsubscribe([callback]): 取消订阅,如果成功取消的话,在回调函数中返回true
  • subscription.arguments: 订阅参数,当重新订阅时使用
  • on("data") 返回 Object: 每次有新的日志时都触发该事件,参数为日志对象
  • on("changed") 返回 Object: 每次有日志从区块链上移除时触发该事件,被移除的日志对象将添加额外的属性:"removed: true"
  • on("error") 返回 Object: 当订阅中发生错误时,触发此事件

通知返回值:

Mixed - 取决于具体的订阅类型

示例代码:

var subscription = web3.eth.subscribe('logs', {
    address: '0x123456..',
    topics: ['0x12345...']
}, function(error, result){
    if (!error)
        console.log(log);
});

// unsubscribes the subscription
subscription.unsubscribe(function(error, success){
    if(success)
        console.log('Successfully unsubscribed!');
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文