我经常想在调试时暂停在特定的行,但只有在执行了另一行之后。通常,此 JavaScript 代码是机器生成的(例如,通过 JSP 或 PHP),或者应该构建(例如,通过 Grunt),每次我想添加断点时,这样做可能有点烦人。在这种情况下如何在特定行停止?
例如,我有两个函数,f_a()
和 f_b()
是这样调用的:
for (var i = 0; i < 1000; i++) {
f_a();
}
f_b();
f_a();
( Running example )
我想在 f_a()
中添加一个断点,但只在 f_b()
调用后停在该函数处。如何做到这一点?
最佳答案
我们可以做到以下几点:
- 在
f_b()
中添加断点。 使这个断点成为条件。作为条件,将变量(假设为
pause_at_f_a
)设置为true
。我们不想在f_b()
中暂停,所以我们使用逗号运算符返回false
。那么条件就是pause_at_f_a = true, false
在
f_a()
中添加一个断点。这个断点的条件应该是paused_at_f_a
变量。
一个可能的烦恼是,在我们检查了我们想要检查的任何内容之后,断点将保持启用状态。这就是我使用另一个步骤的原因:
与其仅仅检查变量是否为
true
,如果为真则取消设置,使用以下条件:pause_at_f_a ? (pause_at_f_a = false, true) : false
条件可以是任何东西。也可以使用计数器。技巧的核心是使用断点来设置变量。这是结果:
关于javascript - 如何在执行某行后仅在断点处停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078643/