Есть вот такой код:
const parent = () => {
// Блок операторов номер 1
// ...
// Конец блока номер 1
fs.readFile(fileName, (err, content) => {
if (err) {
// Здесь нужно выйти из функции parent
}
})
// Блок операторов номер 2
// ...
// Конец блока номер 2
}
// Блок операторов номер 3
// здесь что-то делаем
То есть имеется некая функция parent, внутри которой есть некий коллбэк (для примера у меня приведено асинхронное чтение файла). Внутри коллбэка есть некое условие, при выполнении которого мне нужно выйти из функции parent, то есть перейти к блоку операторов номер 3. Если я просто напишу return, я выйду из
коллбэка, а не из функции parent, то есть перейду к блоку операторов номер 2, а это совсем не то, что мне нужно.
Про промисификацию коллбэков я знаю; это, конечно, решает мою задачу. Но хотелось бы более простое «кондовое» решение без всяких промисов. Выбрасывать исключение я тоже пробовал, такой способ тоже не работает.