Задать вопрос
@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);
});


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

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

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

Похожие вопросы