web3.js 中的连接超时

Posted

技术标签:

【中文标题】web3.js 中的连接超时【英文标题】:Connection timeouts in web3.js 【发布时间】:2020-01-03 15:15:29 【问题描述】:

在实例化 Web3 实例时,我可以传递提供程序选项,包括超时,例如:

const w3 = new Web3(new Web3.providers.HttpProvider('...', timeout: 10e3));

但是当我尝试连接到不健康的节点并检查它是否正在侦听时,它似乎不会影响 isListening 调用:

await w3.eth.net.isListening();

等待的时间超过了我指定的超时时间。

为什么会这样?我怎样才能在那里强制超时?

【问题讨论】:

【参考方案1】:

您可以使用Promise.race() 来获得与超时相关的第二个承诺。

await Promise.race([
    web3.eth.net.isListening(),
    new Promise(function(resolve, reject) 
        setTimeout(function() 
            reject("Time out");
        , 10e3);
    )
]);

【讨论】:

以上是关于web3.js 中的连接超时的主要内容,如果未能解决你的问题,请参考以下文章

WebLogic 非活动连接超时和 JTA 超时

如何解决SSH连接Linux超时自动断开

Java中的超时数据库连接

heroku 中的 Django Redis 连接错误:写入套接字时出现错误 110。连接超时

云手机连接超时

守护程序中的 Doctrine2 连接超时