Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js web3.js中的连接超时_Node.js_Ethereum_Web3_Web3js - Fatal编程技术网

Node.js web3.js中的连接超时

Node.js web3.js中的连接超时,node.js,ethereum,web3,web3js,Node.js,Ethereum,Web3,Web3js,在实例化Web3实例时,我可以传递提供程序选项,包括超时,例如: const w3 = new Web3(new Web3.providers.HttpProvider('...', {timeout: 10e3})); 但是当我尝试连接到一个不健康的节点并检查它是否正在侦听时,它似乎不会影响isListening调用: await w3.eth.net.isListening(); 等待的时间超过了我指定的超时时间 为什么会这样?我如何在那里强制超时?您可以使用第二个与超时相关的承诺 wa

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

const w3 = new Web3(new Web3.providers.HttpProvider('...', {timeout: 10e3}));
但是当我尝试连接到一个不健康的节点并检查它是否正在侦听时,它似乎不会影响
isListening
调用:

await w3.eth.net.isListening();
等待的时间超过了我指定的超时时间

为什么会这样?我如何在那里强制超时?

您可以使用第二个与超时相关的承诺

wait Promise.race([
web3.eth.net.isListening(),
新承诺(功能(解决、拒绝){
setTimeout(函数(){
拒绝(“超时”);
},10e3);
})
]);
您可以使用第二个与超时相关的承诺

wait Promise.race([
web3.eth.net.isListening(),
新承诺(功能(解决、拒绝){
setTimeout(函数(){
拒绝(“超时”);
},10e3);
})
]);