w3schools trabajar then sincronas promises promesas platzi funciones example ejemplo con anidadas javascript promise

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 el return 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 });