rka*_*rer 6 javascript google-chrome-devtools
我有一个函数,完成后用 setTimeout() 重新排队。有人可以解释为什么 Chrome DevTools 让它看起来像是在递归调用自己吗?我的理解是每次调用都应该清楚调用堆栈。
以这个非常简单的例子为例:
<html>
<head>
<script>
function main() {
setTimeout(main, 100); // set breakpoint here
}
main();
</script>
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
第一次断点被击中时,我看到了这个:
经过 3 次迭代后,我看到了这一点:
Firefox 开发人员工具按照我的预期执行,每次遇到断点时只在堆栈上显示该函数的一个实例。
在 Chrome 下是否有某种我不知道的微妙参考捕获,或者这只是 DevTools UI 的事情?
要隐藏它 - 转到
Devtools Settings -> Preferences -> Debugger
Check "Disable async stack traces"
但我强烈建议保持原样。这对于调试非常有用。
| 归档时间: |
|
| 查看次数: |
833 次 |
| 最近记录: |