break говорит об ошибке: цель перехода не может пересечь границу функции. машинопись - PullRequest
3 голосов
/ 22 января 2020

наверняка мои логики c гораздо сложнее, но вот код-заполнитель, где я пытаюсь остановить рекурсивный вызов, но ключевое слово 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 но машинопись, моя версия машинописи:

tsc -v Version 3.7.5

Я не могу понять, что означает эта ошибка и почему она происходит, я искал по inte rnet, но не нашел никаких причин, я использовал break для прерывания циклов в прошлые годы, и теперь он, по-видимому, начал работать, и из-за ошибки я не понимаю, будет ли полезна любая помощь.

1 Ответ

2 голосов
/ 22 января 2020

У вас нет всего oop, чтобы вырваться. Вы вызываете свою функцию рекурсивно, это не то же самое, что al oop. Используйте 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;
  }
};
...