我有一個$.ajax
承諾,並且希望檢查我的(語法有效的)響應是否包含錯誤,從而在此情況下觸發拒絕狀態。在jQuery的延期對象中拋出一個錯誤
我已經與我自己的諾言庫一起工作,它很容易處理這些任務。我不太喜歡jQuery的Promise(cache)實現它的Deferred
object,可能忽略了一些東西,因爲我很少使用它。我覺得去只是使用.then()
,這看起來是那樣的較爲複雜:
return $.ajax(...).then(function success(response) {
var problem = hasError(response);
if (problem) {
var error = new $.Deferred;
error.reject(problem);
return error;
} else
return response;
});
這應返回它在網絡錯誤或問題的響應的情況下,拒絕承諾。但是返回被拒絕的延期真的是最好的方法嗎?
我也會在如何處理這些「錯誤拋出響應處理程序」的ajax選項本身幫助appriciate,我找不到有關他們的好文檔。
聲明:不,我不能改變服務器響應。問題檢測方法是同步的。我不想使用其他庫,我對jQuery解決這個問題的方式特別感興趣。
OK,用'。然後()'我的意思是'.pipe()'做的事jquery :-( – Bergi
截至Jquery 1.8管===然後 – Plynx
是的,幸運的是,他們得到了至少修正。 – Bergi