0
我有以下代碼withhn模塊
var def = $.Deferred();
$.getJSON("http://localhost:62588/api/Values/getXMLData")
.done(function(json){
def.resolve($.parseJSON(json));
});
return def;
然後我有那麼它完成,調用處理返回的數據之前,從另一個模塊調用它。
repository.getUserPolicies().done(function (userPolicies) {
process(userPolicies);
});
這工作得很好,但我還不太瞭解延遲對象是如何工作的。
我讀過,你可以使用getJSON的延期對象,但不知道如果這正是我在這裏做的?
我想知道這種方法是否有缺點?
它可以做得更優雅嗎?
感謝
我想你錯過了一個重要的細節。你打算在每個完成的回調中調用'parseJSON'嗎?如果後來getUserPolicies會得到xml或bson(或其他)的響應呢? – meze
這與問題無關,因爲'getUserPolicies'方法明確包含'$ .getJSON'調用,並且只檢索JSON。解析數據的邏輯似乎在'process()'函數中,所以這可能是找出如何處理返回的數據的地方,並且如果正在使用不同的格式,找出它接收的格式等。 – adeneo
這是相關的。 'getUserPolicies'的用戶不應該關心該方法如何工作。我的第一個問題仍未得到解答。 – meze