我在AngualrJS中有一个用户服务,它当前返回一个承诺:
getData: function() {
return Restangular.one('users', id).get({single: true});
},
Run Code Online (Sandbox Code Playgroud)
我想添加返回缓存用户的功能,但不要认为我可以这样做,因为一个返回一个promise而另一个返回实际数据:
getData: function() {
if !data
return Restangular.one('users', id).get({single: true});
else
return data
},
Run Code Online (Sandbox Code Playgroud)
处理这个问题的最佳方法是什么?
谢谢!
您应该如下修改代码以始终返回承诺
getData: function() {
var deferred = $q.defer()
if !data
Restangular.one('users', id).get({single: true}).then(function(data){
deferred.resolve(data);
});
else
deferred.resolve(data);
return deferred.promise;
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |