我想這已經是一個非常正常的設置的:
return $http.get('some/url')
.then(function (result) {
if (result.data.success) {
//Do something useful
} else {
//We've hit some sort of error
}
},
function() {
return "Failed to communicate with the server, or the server encountered an error.";
});
我的問題是圍繞如何處理場景中的HTTP調用技術上成功,但我們從服務器獲取的數據很糟糕,無法使用,或者明確指出某些錯誤。我想要做的就是把自己推向承諾鏈的失敗軌道。那樣的話,任何人都可以很好地執行自己的失敗功能,如果這是有道理的。
我知道$ q爲您提供了創建延遲對象所需的工具,然後讓您在任何需要的情況下調用解析或拒絕,但我想知道是否有方法可以在不使用$ q值。
的問題是,爲什麼要使用一個替代的方式來做到這一點? $ q確實爲你完成這項工作,沒有任何問題。 – CodeNashor
@code我想只是爲了保持它儘可能簡單?我覺得一定有辦法。如果不是,我想不是,但如果有的話,似乎我應該知道它。 – ctb
如果你像你應該使用它,沒有比這更簡單的方法。 ;)請注意:http://chariotsolutions.com/blog/post/angularjs-corner-using-promises-q-handle-asynchronous-calls/ – CodeNashor