如何从内部拒绝承诺的function
这可能是一个愚蠢的问题,但中期承诺链,你如何拒绝从当时的职能之一的承诺? 例如:
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 });
不再有对原始parsing/拒绝function或PromiseResolver的引用。 我只是应该添加return Promise.reject(validationError);
?
我只是应该添加
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 });