在AngularJS中,我有一個api請求出去並返回一個JSON。 JSON存儲爲對象data
,我使用data.Automation.Status
檢查Status
中的字符串。鴨與JSON對象鍵入 - 嘗試/除?
有可能上升(與JSON HTTP 200成功後成功返回)幾個JSON錯誤:
- 整個JSON可能會返回一個空字符串「」
- 數據JSON對象可以存在,但自動化JSON對象可能是不確定的
- 物業
Status
對象Automation
的可能是未定義或空字符串
今兒g來自python,所有這些可能的情況都可以在try/except塊中輕鬆處理。
Try:
do something with JSON
except (blah, blah)
don't error out because JSON object is broken, but do this instead
我看到角有$ errorHandler服務,可以修改自定義處理程序。但我不確定這是否可以用我正在尋找的鴨子打字的相同方式使用。
我怎麼能在AngularJS上打鴨子?具體來說,對於上面列表中提到的JSON對象錯誤scenerios?
我如何使用data.Automation.Status
的時刻:
if (iteration < Configuration.CHECK_ITERATIONS && data.Automation.Status !== "FAILED") {
iteration++;
return $timeout((function() {
return newStatusEvent(eventId, url, deferred, iteration);
}), Configuration.TIME_ITERATION);
} else {
err = data.Automation.StatusDescription;
return deferred.reject(err);
}
沒有真正與問題有關,但我發現使用$ timeout在這裏真的很奇怪:你不應該使用deferred.resolve()代替嗎? – 2014-09-09 18:48:38
你知道你可以在JavaScript中完全相同,不是嗎? – zeroflagL 2014-09-10 21:12:37