Это, наверное, глупый вопрос, но середина обещания, как вы отвергаете обещание изнутри одной из функций? Например:
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);?