У меня есть следующие цепочечные функции, которые все реализуют обещания, использующие Q:
validateToken(context).then(parseFormData, get403).then(createReport, get400).then(send200, get400).catch(get500);
например, все они имеют где-то внутри них:
let deferred = q.defer();
..
deferred.resolve(true);
deferred.reject(false);
return deferred.promise;
Первая функция validateToken вызывает отложенную.reject.Это приводит к тому, что get403 вызывается, как и ожидалось;но createReport, get400 и get500 также называются?Это смущает меня.Я думал, что только первый обработчик ошибок попал в цепочку?
Может кто-нибудь объяснить, что происходит, и есть ли способ для меня получить желаемое поведение, где только самый непосредственный обработчик отклонения / ошибкизвонил?