我正在學習角,但在遇到問題時要了解的一個點。我想從我的服務器獲取數據。我用這個代碼(從角度的文檔):理解角度的承諾
this.myFunction = new function()
{
var uri = this.getServerUri() + "Connexion/"+login+"/"+CryptoJS.MD5(pass);
var promises = $http.get(uri)
.success(function(data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
//alert("success:"+JSON.stringify(data));
return data;
}).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
return "";
});
return promises;
};
但我不明白的成功函數的行爲。當我調用這個函數時,它工作正常,我得到服務器的答案,但我得到完整的承諾對象(我必須寫「promises.data」來獲取我的數據)。你能解釋我爲什麼嗎?因爲在成功函數中,我試圖只返回數據。
編輯:我忘了補充我的調用函數:
var serverAccepted = this.MyFunction().then(function(promise) {
var objet = promise.data;
if(!_.isEmpty(objet))
{
userService.setUser(objet, true);
return "";
}
else return "Error while trying to login on the server";
});
return serverAccepted;
謝謝
我明白了,但爲什麼收到的響應包含完整的承諾對象,而不僅僅是數據?因爲我在成功函數中返回數據。 – user2088807 2014-12-03 13:07:17
更新並進一步說明。 – 2014-12-03 15:42:20
完美的解釋謝謝! – user2088807 2014-12-04 14:26:31