中断表示错误:跳转目标无法跨越函数边界。打字稿

Inz*_*lik 6 javascript recursion break typescript

当然我的逻辑要复杂得多,但这里有一个占位符代码,我试图停止递归调用,但break关键字说Jump target cannot cross function boundary .ts(1107)

let arr = [1, 2, 3, 4, 5, 6, 7, 8];

async function recCall(input: number[]) {

    if (input.length) {
        let eachItem = input.pop();

        // my logic includes http call with await

        recCall(input); // next iter
    }else{
        break; // says error 
    }
};
Run Code Online (Sandbox Code Playgroud)

这不是普通的 javascript 而是打字稿,我的打字稿版本是:

tsc -v Version 3.7.5

我无法理解这个错误是什么意思以及为什么会发生,我在互联网上搜索但没有找到任何原因,过去几年我一直在使用break来打破循环,现在它显然开始不起作用并说错误我不明白任何帮助都会得到帮助。

fee*_*edy 8

你没有可以打破的循环。您正在递归地调用您的函数,这与循环不同。使用return而不是break

let arr = [1, 2, 3, 4, 5, 6, 7, 8];

async function recCall(input: number[]) {

  if (input.length) {
    let eachItem = input.pop();

    // my logic includes http call with await

    recCall(input); // next iter
  }else{
    return;
  }
};
Run Code Online (Sandbox Code Playgroud)