這可能是一個愚蠢的問題,但中期承諾鏈,你如何拒絕來自其中一個功能的承諾?例如:如何拒絕內部承諾然後功能
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);
?
拋出一個異常? – thefourtheye
'throw validationError' – kavun
><我有一種感覺,這將是一件愚蠢/容易的事情。猜猜我一直在想我必須調用專用的拒絕函數,或者返回失敗的Promise。因此,從promise/thenable中,任何不是新Promise的返回值都將被視爲已解決的值?如果我拋出一個錯誤,這與返回一個立即被拒絕的Promise相同?如果您將其作爲答案發布,我會接受它。 – chinabuffet