我有一组绑定,它们在代码之前和之后在函数内部触发。如下所示:
function global() {
before(); // call all before binds here
//... mainFunction code...
after(); // call all after binds here
}
如果回调中的一个函数before();
想要退出或停止global()
进一步运行,我如何在不检查返回值的情况下停止它?
我有一组绑定,它们在代码之前和之后在函数内部触发。如下所示:
function global() {
before(); // call all before binds here
//... mainFunction code...
after(); // call all after binds here
}
如果回调中的一个函数before();
想要退出或停止global()
进一步运行,我如何在不检查返回值的情况下停止它?
return
在不检查值ed 的情况下实现此目的的唯一方法是throw
通过设置error来引发异常。
function before() {
throw new Error('Ending execution');
}
function after() {
console.log('Have you met Ted?');
}
function global() {
before();
// never reaches here
after();
}
global(); // Error: Ending execution
console.log('foo'); // not executed
如果您在global
某处调用并希望在调用之后的任何代码继续执行,则需要用 包装它try..catch
,例如
function global() {
try {
before();
// never reaches here
after();
} catch (e) {
console.log(e); // log error. Leave this block empty for no action
}
}
global(); // Error logged
console.log('bar'); // still executed