Я прочитал несколько статей по этому вопросу, но мне все еще не ясно, есть ли разница между Promise.reject и ошибкой. Например,
Использование Promise.reject
return asyncIsPermitted()
    .then(function(result) {
        if (result === true) {
            return true;
        }
        else {
            return Promise.reject(new PermissionDenied());
        }
    });
Использование throw
return asyncIsPermitted()
    .then(function(result) {
        if (result === true) {
            return true;
        }
        else {
            throw new PermissionDenied();
        }
    });
Мое предпочтение заключается в использовании throw просто потому, что оно короче, но было интересно, есть ли какое-то преимущество одного над другим.
