javascript - web3 ethereum subscribe 并不总是有效
问题描述
当订阅方法不起作用时,有时我会遇到这个问题。而且我找不到调试订阅操作是否启动的方法。甚至“错误”和“结束”处理程序似乎也不起作用。
async initWssServer(e = false) {
if (e) {
console.error('WSS disconnected')
console.error(e)
}
this.server = await new Web3('wss://mainnet.infura.io/ws')
this.events = events
const subscribe = this.server.eth.subscribe('newBlockHeaders', async (err, data) => {
if (err) {
return this.initWssServer(err)
}
return this.events.emit('new_block', data)
})
subscribe.on('error', e => this.initWssServer(e))
subscribe.on('end', e => this.initWssServer(e))
return true
}
有没有办法检查订阅是否开始,如果没有 - 重播或做点什么?
解决方案
推荐阅读
- java - 为不同的 Jenkins 构建使用不同的 JDK,无需从站
- parameters - R 的 H2o GBM monotone_constraint 参数
- r - WIn R,当我应用 complete.cases 并尝试创建一个新矩阵时,为什么范围会变成“Inf”?
- zsh - 带有 oh-my-zsh 的 zsh 提示符中的特殊字符
- ios - 当输入语言为 RTL/阿拉伯语时,如何防止 UITextfield 改变对齐方式?
- android - 三个视图的Horizontal LinearLayout,中间视图应该水平居中
- android - 使用 dispose 处理程序 rxjava 创建 Observable
- javascript - 递归创建数组
- android - Android Studio Design 中由父布局覆盖的子项
- c# - 为什么 TextOutW() 会因自定义字体大于 131 像素而失败?