javascript - 如何在 Javascript/Node 中的异步函数上调用 Await 后超时

标签 javascript node.js asynchronous promise web3js

我有一个异步函数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);
    }),
]);

关于javascript - 如何在 Javascript/Node 中的异步函数上调用 Await 后超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53126157/

相关文章:

node.js - 间接关联的 Sequelize

javascript - 使用javascript访问jade元素

azure - 文件开始流式传输到浏览器后,如何清理 Azure 本地存储中的文件和目录?

javascript - Stylus 中间件不编译 CSS

javascript - 如何在分页事件中突出显示数据表中的单词

java - 如何使用 Spring Boot Async 提交表单而不重新加载页面?

javascript - 向 Controller 发送 JSON 时出现 400 错误

javascript - 无法读取未定义的 React Hooks 的属性

javascript - 在 Angular 4 中使用单击外部时如何关闭弹出屏幕?

Firefox 上的 Javascript mozfullscreenchange