代码之家  ›  专栏  ›  技术社区  ›  Nyxynyx

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

  •  0
  • Nyxynyx  · 技术社区  · 7 年前

    我有一个异步函数 web3.eth.net.isListening()

    await web3.eth.net.isListening()
    

    问题: 我们怎样才能让以上这些 await console.log 显示发生了错误?

    1 回复  |  直到 7 年前
        1
  •  9
  •   CRice    7 年前

    你可以用 Promise.race() 提供与超时相关的第二个承诺。

    await Promise.race([
        web3.eth.net.isListening(),
        new Promise(function(resolve) {
            setTimeout(function() {
                console.log('Timed out');
                resolve();
            }, 10000);
        }),
    ]);