也许我没有正确调试承诺但基本上如果你在断点处停止并运行异步代码它实际上并没有完成,直到你恢复执行并且这是一个问题。调试器允许您快速尝试多种api方法......但是如果你恢复它就不能
debugger;
//now type the following in console
Promise.resolve().then(()=> console.log('done'));
答案 0 :(得分:1)
为此可能的解决方法是也将debugger
放入您的.then
回调中。这并非在所有情况下都有效,但对于我在退出node.js脚本之前进行调试的特殊情况有效。
将其插入到要调试的JS代码中
debugger;
expressionReturningPromise().then( r => {
console.log('done');
debugger;
});
然后,开发工具将在.then
回调中的调试器上暂停,您将可以查看承诺的已解决价值。
答案 1 :(得分:0)
它不会执行,因为.then
中的函数仅在当前"线程"完了。对于所有异步调用(例如setTimeout
。