我有一些代碼看起來有點像這樣(少可笑,當然):jQuery的Deferreds,.pipe和異常
var d = $.Deferred();
d.pipe(function() {
throw "a";
}).then(function() {
console.log("good!");
}, function(e) {
console.log("I want the exception here");
});
d.resolve();
的問題是,在一個.pipe
doneFilter
拋出一個異常,似乎並沒有讓jQuery的將其視爲失敗,並導致doneFilter
中未捕獲的異常。
另一種方法是創建一個新的延遲並圍繞doneFilter
扔一個try-catch塊,但我想知道是否有更好的方法去實現它。
我很困惑,因爲你的例子並沒有使用'.pipe()'或'doneFilter',然後你繼續討論'\ - :' – hippietrail 2012-08-08 10:01:57