终止JavaScript中的处理程序执行

时间:2018-11-19 17:14:41

标签: javascript handler

我需要终止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 } 的解决方案,但是它们对我不起作用,因为有时处理程序中的其他函数会捕获此异常,并且处理程序继续执行。

1 个答案:

答案 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();