是否可以停止 JavaScript 执行?
IT技术
javascript
2021-02-04 00:35:57
6个回答
简答:
throw new Error("Something went badly wrong!");
如果您想了解更多,请继续阅读。
是否要停止 JavaScript 的执行以进行开发/调试?
debugger;
代码中的表达式将停止页面执行,然后浏览器的开发人员工具将允许您查看页面冻结时的状态。
您想随意停止您的应用程序吗?
出错了?
与其试图停止一切,不如让您的代码处理错误。Exception
通过谷歌搜索了解s。它们是一种让您的代码“跳转”到错误处理程序而不使用乏味的 if/else 块的聪明方法。
在阅读了它们之后,如果您认为中断整个代码绝对是唯一的选择,那么解决方案是抛出一个不会被“捕获”到除应用程序“根”范围之外的任何地方的异常:
// creates a new exception type:
function FatalError(){ Error.apply(this, arguments); this.name = "FatalError"; }
FatalError.prototype = Object.create(Error.prototype);
// and then, use this to trigger the error:
throw new FatalError("Something went badly wrong!");
确保您没有catch()
捕获任何异常的块;在这种情况下,修改它们以重新抛出您的"FatalError"
异常:
catch(exc){ if(exc instanceof FatalError) throw exc; else /* current code here */ }
当任务完成或任意事件发生时?
return;
将终止当前函数的执行流程。
if(someEventHappened) return; // Will prevent subsequent code from being executed
alert("This alert will never be shown.");
注意:return;
仅在函数内有效。
在这两种情况下...
...您可能还想知道如何停止异步代码。它是用clearTimeout
和完成的clearInterval
。最后,要停止XHR ( Ajax ) 请求,您可以使用xhrObj.abort()
方法(在jQuery中也可用)。
你可以打一个 JavaScript 错字 :D (在这里跳出框框思考)
thisFunctionDoesNotExistAndWasCreatedWithTheOnlyPurposeOfStopJavascriptExecutionOfAllTypesIncludingCatchAndAnyArbitraryWeirdScenario();
或者类似的东西:
new new
像这样的事情可能会奏效:
function javascript_abort()
{
throw new Error('This is not an error. This is just to abort javascript');
}
取自这里:
不。
即使抛出异常,它也只会终止当前的事件循环。传递给 setTimeout 或 DOM/XMLHttpRequest 事件处理程序的回调在时间到来时仍将运行。
我做:
setTimeout(function() { debugger; }, 5000)
这样我有 5 秒钟的时间与 UI 交互,然后停止。上次我使用的时候是我需要让自定义工具提示可见,以进行一些样式更改。