Как отклонить обещание изнутри, тогда функция
Это, наверное, глупый вопрос, но середина обещания, как вы отвергаете обещание изнутри одной из функций? Например:
someActionThatReturnsAPromise()
.then(function(resource) {
return modifyResource(resource)
})
.then(function(modifiedResource) {
if (!isValid(modifiedResource)) {
var validationError = getValidationError(modifiedResource);
// fail promise with validationError
}
})
.catch(function() {
// oh noes
});
Больше нет ссылки на исходную функцию разрешения/отклонения или PromiseResolver. Я просто должен добавить return Promise.reject(validationError);
?
Ответы
Ответ 1
Я просто должен добавить return Promise.reject(validationError);
?
Да. Однако это сложное только в jQuery, с библиотекой Promise/A +, которая также может просто
throw validationError;
Итак, ваш код будет выглядеть как
someActionThatReturnsAPromise()
.then(modifyResource)
.then(function(modifiedResource) {
if (!isValid(modifiedResource))
throw getValidationError(modifiedResource);
// else !
return modifiedResource;
})
.catch(function() {
// oh noes
});