Typescript异步等待调试

问题描述 投票:0回答:1

我的代码中有一个奇怪的问题,我无法根本原因。

try {
    const result = await somePromise.catch((err) => {
        console.log(new Date()); // this prints time, t0
        console.log('Stats', eventLoopStats.sense());
        throw err;
    });
} catch (e) {
    console.log(new Date()); // this prints time, t0 + 15 seconds
    console.log('Stats', eventLoopStats.sense()); // this prints {0, 0, 0, 0}, meaning, event loop hasn't been involved since last call to sense
}

我的问题是,为什么承诺被拒绝与实际上被捕获在外部捕获块之间会有巨大的滞后?

我在我的开发环境中,这非常闲置。

此外,它始终具有大约15秒的延迟。

我在机智的尽头。如果您还有其他调试想法,那将有所帮助!谢谢! :)

注意:

  1. 我正在使用节点版本12.11.1
  2. 也使用bluebird作为保证
  3. [somePromise是从从Typescript转换为Javascript的库中获得的。
node.js typescript event-loop
1个回答
0
投票

根本原因是我的代码具有猴子补丁的承诺绑定,这导致代码在承诺拒绝和事件循环继续之间注入。如果您有类似的问题,请检查您的代码是否已修补Promise.bind

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.