Иногда я сталкиваюсь с этой проблемой, когда метод подписки не работает. И я не могу найти способ отладить, началось ли действие подписки или нет. Кажется, даже обработчики «ошибки» и «конца» не работают.
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
}
Есть ли способ проверить, началась ли подписка, и если нет, то повторить ее или сделать что-то вместо этого?
это не полезно.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


может это поможет, если поставить: await this.server.eth.subscribe