我需要终止JavaScript中的处理程序执行,以便允许在网页中执行方法/处理程序。例如,以下代码说明了我所需要的:
recall_scorer = make_scorer(recall_score(y_true = , y_pred = , \
labels =['compensated_hypothyroid', 'primary_hypothyroid'], average = 'macro'))
我已经看到一些使用function handler() {
//doing many things 1
internalProcess()
//doing many things 2 (it is not executed)
}
function internalProcess() {
//doing many things 3
//terminate the handler execution
}
的解决方案,但是它们对我不起作用,因为有时处理程序中的其他函数会捕获此异常,并且处理程序继续执行。
答案 0 :(得分:0)
throw
中的错误,请使用 internalProcess
。您只需要在处理程序中try / catch
:
function handler() {
try {
console.log('doing many things 1');
internalProcess();
console.log('doing many things 2');
} catch (e) {
console.log('interrupted:', e.message);
}
}
function internalProcess() {
console.log('doing many things 3');
//terminate the handler execution
throw new Error('a message');
}
handler();
如果您只是想根据handler()
中发生的计算有时要停止执行internalProcess()
,则可以使用以下方法而无需使用throw:
只需使internalProcess()
的返回值告诉handler()
是否继续运行:
function handler() {
console.log('doing many things 1');
const shouldContinue = internalProcess();
if (!shouldContinue) {
return;
}
console.log('doing many things 2');
}
function internalProcess() {
console.log('doing many things 3');
//terminate the handler execution
return false;
}
handler();