终止Javascript而不出现错误/异常
Terminate Javascript without error / exception
我需要终止函数中的javascript,这样它就不会执行脚本调用的下一个代码块和其他函数,该脚本遵循当前函数。
我在SO中发现了这个现有的问题:如何在Javascript中终止脚本,其中给出了触发错误/异常的解决方案,该错误/异常将立即终止脚本。
但我的情况不同,因为,如果当前函数没有停止脚本的执行,我终止脚本的目的是防止下一个函数出现错误。所以,触发另一个错误来防止错误并不能解决我的目的!
那么,有没有其他方法可以终止javascript而不是抛出错误/异常呢?
在标记为重复之前,请仔细阅读我的问题,我已经解释了为什么它不能解决我提到的问题。
因为您在函数内部,所以只需要return
。
如果你的问题没有执行"脚本调用的其他函数",你应该返回一个布尔值。例如,如果不希望调用rest,则返回false,然后将剩余语句包装在if:中
function Foo() {
if (weAreInLotsOfTrouble) {
return false;
}
return true;
}
DoSomething();
DoSomethingElse();
if (Foo()) {
DoSomethingDangerous();
}
尝试使用参数为"stopOnFalse"
的jQuery.Callbacks()
;jQuery.when()
,jQuery .then()
var callbacks = $.Callbacks("stopOnFalse");
function a(msg) {
var msg = msg || "a";
console.log(msg);
return msg
}
// stop callbacks here
function b() {
var msg = false;
console.log(msg)
return msg
}
// `c` should not be called
function c() {
var msg = new Error("def");
console.log(msg)
return msg
}
callbacks.add(a,b,c);
$.when(callbacks.fire())
.then(function(cb) {
// `c` : `Error`
if (cb.has(c)) {
console.log("callbacks has `c`"
, cb.has(c));
// remove `c`
cb.remove(c);
console.log(cb.has(c));
// empty `callbacks`
cb.empty();
// do other stuff
cb.add(a);
cb.fire("complete")
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
相关文章:
- 为什么浏览器没有为语法错误抛出异常
- PHP REST服务抛出异常——希望避免控制台错误
- 未捕获错误:INVALID_STATE_ERR:DOM异常11
- 节点.js未捕获的异常类型错误:无法设置未定义的预处理 ''
- 错误:180:引发异常(“dev!”):- 和错误:> aqsrv> 70:捕获异常(空) - 错误 -1
- Meteor:排队任务中出现异常:错误:无法执行'removeChild'在'节点':要
- 如何处理Meteor中未捕获的异常错误
- 每当我试图将简单的图像源转换为数据URL时,就会出现安全错误异常
- HTML5音频DOM异常11错误,currentTime=0
- 未捕获错误:NOT_FOUND_ERR:appendChild调用的DOM异常8
- 错误:未捕获的异常:无效的市场uri
- nknown错误:Runtime.evaluate引发异常:SyntaxError:意外的令牌var
- 需要一种方法来系统地处理NodeJS项目中的错误/异常/拒绝
- 异常:“远程主机关闭了连接.错误代码为 0x80070057”
- Signalr:JavaScript 客户端无法在 IE 上重新连接(解析错误异常)
- 终止Javascript而不出现错误/异常
- JavaScript中的内部错误(异常)
- Mysql unicode错误异常
- Protractor browser.get()不会导航到带有致命错误异常的url
- 承诺错误/异常处理设计