@senaev

Как отловить исключение в JS Promise без присваивания отдельной переменной?

Возможно ли в JS отловить exception в promise коллбэке без присваивания отдельной переменной? Объясню, в чем суть:

//создаём промис со статусом resolved
var promise = new Promise(function(resolve) {
    resolve('Hello, world');
});

//навешиваем коллбэк, в котором вызываем эксепшн
promise.then(function () {
    throw 123;
});

//сюда эксепшн не попадёт, так как promise находится в статусе resolved
promise.catch(function (error) {
    console.error('Exception: ', error);
});


Проблему могла бы решить следующая конструкция:

var promise = new Promise(function(resolve) {
    resolve('Hello, world');
});

//присваиваем переменной other значение нового промиса
var other = promise.then(function() {
    throw 123;
});

//в этом случае эксепшн пойман
other.catch(function(error) {
    console.error('Exception: ', error);
});


Проблема состоит в том, что промис в моём случае будет создаваться во внешней библиотеке и нет возможности вернуть всю цепочку примисов. То есть хотелось бы отследить эту цепочку от начального промиса. Есть ли такая возможность?
  • Вопрос задан
  • 478 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
нет возможности вернуть всю цепочку примисов

Как так? Всегда возвращайте всю цепочку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы