Например
p = new Promise(function (resolve, reject) {
throw 'err';
});
p.done();
В большинстве обеденных polyfill libs, сделанное вызовет ошибку, и текущее выполнение завершится.
Но если мы используем p.then()
, ничего не произойдет. Ошибка проглатывается обещанием. Если мы используем p.catch
, у нас нет способа выйти из текущего исполнения. Я хочу добиться чего-то вроде:
try {
// something
} catch (err) {
if (check(err)) {
throw err;
}
}