chrome调试器承诺在暂停时不解决?

时间:2017-11-10 05:42:15

标签: javascript debugging google-chrome-devtools

也许我没有正确调试承诺但基本上如果你在断点处停止并运行异步代码它实际上并没有完成,直到你恢复执行并且这是一个问题。调试器允许您快速尝试多种api方法......但是如果你恢复它就不能

debugger;
//now type the following in console
Promise.resolve().then(()=> console.log('done'));

2 个答案:

答案 0 :(得分:1)

为此可能的解决方法是也将debugger放入您的.then回调中。这并非在所有情况下都有效,但对于我在退出node.js脚本之前进行调试的特殊情况有效。

  1. 将其插入到要调试的JS代码中

    debugger;
    
  2. 当调试器停止时,在控制台提示符下键入以下内容:
    expressionReturningPromise().then( r => {
      console.log('done');
      debugger;
    });
    
  3. 恢复脚本执行

然后,开发工具将在.then回调中的调试器上暂停,您将可以查看承诺的已解决价值。

答案 1 :(得分:0)

它不会执行,因为.then中的函数仅在当前"线程"完了。对于所有异步调用(例如setTimeout

),这都是相同的