我的代码看起来有点像这样(当然不那么荒谬):
var d = $.Deferred();
d.pipe(function() {
throw "a";
}).then(function() {
console.log("good!");
}, function(e) {
console.log("I want the exception here");
});
d.resolve();
问题是在 a 中抛出异常.pipe
doneFilter
似乎不会让 jQuery 将其视为失败,它会导致doneFilter
.
另一种方法是创建一个新的 deferred 并在 周围抛出一个 try-catch 块doneFilter
,但我想知道是否有更好的方法来解决它。