Javascript/Node 中的异步函数调用 Await 后如何超时
How to Timeout After Calling Await on an async function in Javascript/Node
我有一个异步函数 web3.eth.net.isListening()
如果出现错误,它会导致以下语句永远卡住:
await web3.eth.net.isListening()
问题:如何让上面的await
语句在10秒后超时,并做一个console.log
来表明发生了错误?
您可以使用 Promise.race()
提供与超时相关的第二个 Promise。
await Promise.race([
web3.eth.net.isListening(),
new Promise(function(resolve) {
setTimeout(function() {
console.log('Timed out');
resolve();
}, 10000);
}),
]);
我有一个异步函数 web3.eth.net.isListening()
如果出现错误,它会导致以下语句永远卡住:
await web3.eth.net.isListening()
问题:如何让上面的await
语句在10秒后超时,并做一个console.log
来表明发生了错误?
您可以使用 Promise.race()
提供与超时相关的第二个 Promise。
await Promise.race([
web3.eth.net.isListening(),
new Promise(function(resolve) {
setTimeout(function() {
console.log('Timed out');
resolve();
}, 10000);
}),
]);