0
我正在編寫向服務器發送Ajax請求的代碼。我正在使用try/catch來處理請求之外的錯誤,如下所示。搜索方法將請求發送到服務器,如果它可以讀取結果,它將調用回調函數。我問這個:因爲ajax請求是異步的,如果回調裏面有一個錯誤(不是在搜索方法內部),它會落入外部catch塊還是需要另一個try/catch回調函數?Javascript嘗試/捕獲範圍
try {
service.search(function() {
var entries = service.getEntries();
$.each(entries, function (index, content) {
var cat = {
// those may throw exceptions, too
name: content.get("category"),
path: content.getPath()
};
categories.push(cat); // defined somewhere else.
});
if (categories.length < totalResults) {
// A method call may throw exception
} else if (typeof loadCallback === 'function') {
// Done.
}
});
} catch (e) {
}
我不敢肯定,但我想'service.search()'會有一個'onerror'回調參數可以用來捕獲異常,但就你的問題而言,我想它會被該catch塊攔截,但當然不能確定。 – yogi 2012-08-08 06:48:50
我想答案可能是'它取決於'...正如@yogi所說,異步方法應該有一些回調參數來完成後檢查錯誤。 – helpermethod 2012-08-08 06:51:35
在我的情況下,它需要太多的代碼來使用回調函數,因爲我有太多的函數互相調用像鏈。然後我需要給每個人寫回調。 – sedran 2012-08-08 06:55:26