我有一个异步函数web3.eth.net.isListening()
,如果有错误,它将导致以下语句永远卡住:
await web3.eth.net.isListening()
问题:我们如何让上述await
语句在10秒后超时,并执行console.log
来表明发生了错误?
答案 0 :(得分:6)
您可以使用Promise.race()
来提供与超时相关的第二个Promise。
await Promise.race([
web3.eth.net.isListening(),
new Promise(function(resolve) {
setTimeout(function() {
console.log('Timed out');
resolve();
}, 10000);
}),
]);