我正在尝试调试一组重定向用户的函数。我想在运行时“杀死”脚本以读取console.log()的输出。我不能只使用简单的return
,因为有许多功能可以协同工作。
答案 0 :(得分:1)
在代码中要暂停的位置设置断点。如果您在代码浏览器中添加debugger
statement支持它将自动停止并打开调试器(实际上我认为某些浏览器(Chrome?)可能会忽略该语句,除非您已经打开了控制台/开发工具,但显然你可以在必要时开始使用开发工具。
答案 1 :(得分:1)
有几个选项,并非所有选项都适用于您的情况:
alert()
,如ismaelga建议的那样; debugger
关键字,也可以使用浏览器的GUI(如果有); console.log
重新定义为空函数;这样就不会记录任何内容,因此您可以在不受干扰的情况下读取到目前为止记录的内容。有些选项无法实现的情况:
setInterval
之类的内容,即使“主循环”停止,其他代码仍然可以运行并记录内容; console.log
的本地副本,因此重新定义它不会影响它们。在所有选项中,我都会消化第4个,因为你可以平静地阅读你的日志,而不会“破坏”页面。如果你想“过滤”日志,你也可以让一些函数调用“正确”的日志(console.log
的保存副本),而其余的调用“假”日志(你重新定义的那个)。
答案 2 :(得分:0)
声明一个在任何函数之外的全局变量,并在每个函数或长时间运行的循环中添加代码来检查该变量的值,并且只有在以某种方式设置该值时才会继续。这样变量就可以作为信号量,你可以从任何地方改变它的值,并根据它的值终止所有处理。
例如,一个名为stopProcessing的简单布尔变量,初始化为false,但可以设置为true,让所有函数都知道返回,所有循环都要尽快破坏。