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 中的连接超时的主要内容,如果未能解决你的问题,请参考以下文章