@AlexNew22

Каким образом обработчики добавляются в Promise?

Каким образом обработчики добавляются в промис?
Например
const p = new Promise(...).then(...).then(...).catch()
const p2 = new Promise(...).catch().then(...).then(...)

В данном примере получается, что нам не важно, где добавлять catch, в начале или в конце, каким образом этот catch попадает в промис и что из себя представляет этот промис, что может таким образом в объект собирать "методы как я понял"
Как вообще промис собирается при его создании и почему не важна очередность расположения для catch()?
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Это не добавление обработчиков в один и тот же промис, это цепочка промисов.
.then(onResolve, onReject) возвращает новый промис
.catch(onReject) - синтаксический сахар для .then(undefined, onReject)
const p = new Promise(...).then(...).then(...).catch();
можно записать как
const p1 = new Promise(...);
const p2 = p1.then(...);
const p3 = p2.then(...);
const p4 = p3.catch(...);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
.catch(...) это все равно что .then(null, ...) а у метода .then есть особенность: если колбек-функция для запуска отсутствует, то созданный этим методом промис возвращает результат промиса на котором вызван.

А так конечно новый промис должен генерироваться колбек-функцией в этом то и вся фишка таких цепочек.
Ответ написан
Ваш ответ на вопрос

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

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