我正在学习角,但在遇到问题时要了解的一个点。我想从我的服务器获取数据。我用这个代码(从角度的文档):理解角度的承诺
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