当然,我的逻辑要复杂得多,但这里有一个占位符代码,其中我试图停止递归调用,但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
}
};
这不是普通的javascript,而是typescript,我的typescript版本是:
tsc -v Version 3.7.5
我不能理解这个错误是什么意思,为什么它会发生,我在互联网上搜索了一下,但没有找到任何原因,我过去几年一直在使用break来打破循环,现在它显然开始不起作用,并说一个我不理解的错误将得到任何帮助。
发布于 2020-01-22 19:51:07
你不需要打破一个循环。您正在递归地调用您的函数,这与循环不同。使用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;
}
};
https://stackoverflow.com/questions/59859011
复制相似问题