Если у вас есть это:
check();
foo();
Не существует способа , который check
мог бы return
для вас, так что гарантировано , что foo
будет выполнено. И это хорошо, иначе у вас не будет никаких гарантий относительно вашего потока выполнения в вашем коде.
Единственный способ, которым это может пропустить выполнение foo
, - это если фатальная ошибка произошла в check
и все останавливается, или - и вот оно - если check
выдает исключение .
Вы бы использовали это примерно так:
let foo = false;
function assertFoo() {
if (!foo) {
throw new Error('Not enough foo');
}
}
function bar() {
assertFoo();
console.log('Barrr!');
}
try {
bar();
} catch (e) {
console.log(e.message);
}