我有一个简单的Angular服务,该服务使用$ http来调用API。
app.service("MyService", function($http){
this.api = function(obj){
return $http.post("/some-route", obj).success(function(data){
//process data in various ways here
var returnObj = {
complete: true,
data: data
};
return returnObj;
});
}
});
在$ http回调中,我先处理数据,然后再返回。当我在控制器中调用此服务时,我想获取该处理后的数据。
以下仅给我未处理的数据:
MyService.api(someObj).success(function(data){
console.log(data);
});
如何从回调中获取处理后的数据?
该success
函数不会创建新的诺言,因此您的控制器成功回调将注册为与服务相同的诺言(原始的诺言)。
相反,您可以使用then
,因此它将创建一个新的Promise,该Promise将与您的returnObj
对象一起解决:
// service
return $http.post("/some-route", obj).then(function(data){
// controller
myService.api().then(function(data) {
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句