trabajar - promises javascript w3schools
Cómo rechazar una promesa desde dentro y luego funcionar (1)
Esta es probablemente una pregunta tonta, pero a mitad de una cadena de promesas, ¿cómo rechazas una promesa desde dentro de una de las funciones? Por ejemplo:
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
});
Ya no hay una referencia a la función original de resolución / rechazo o al PromiseResolver. ¿Se supone que return Promise.reject(validationError);
agregar el return Promise.reject(validationError);
?
¿Se supone que
return Promise.reject(validationError);
agregar elreturn Promise.reject(validationError);
?
Sí. Sin embargo, es tan complicado solo en jQuery, con una biblioteca compatible con Promise/A+ también podría simplemente
throw validationError;
Entonces tu código se vería así
someActionThatReturnsAPromise()
.then(modifyResource)
.then(function(modifiedResource) {
if (!isValid(modifiedResource))
throw getValidationError(modifiedResource);
// else !
return modifiedResource;
})
.catch(function() {
// oh noes
});