Javascript AngularJS(Restangular):将服务方法包装为超时
在basic$http中,我有这样的代码(这是一个服务): 我将其转换为Restanglar,因此:Javascript AngularJS(Restangular):将服务方法包装为超时,javascript,angularjs,promise,restangular,Javascript,Angularjs,Promise,Restangular,在basic$http中,我有这样的代码(这是一个服务): 我将其转换为Restanglar,因此: var getSomeData = function() { var user = Restangular.one('mylongurl'); $timeout(function(){ return user.get().then(function (response) { return response; }, function(error){
var getSomeData = function() {
var user = Restangular.one('mylongurl');
$timeout(function(){
return user.get().then(function (response) {
return response;
}, function(error){
return error;
});
}, 2000);
return user;
};
然后在控制器中,我使用它:
someService.getSomeData().then()...
但是现在我得到了超时:
someService.getSomeData()。那么它不是一个函数
您可以利用$timeout
返回承诺的事实:
function getSomeData() {
var user = Restangular.one('mylongurl');
return $timeout(2000)
.then(function(){
return user.get();
});
}
angular的旧版本可能仍然需要传递给timeout的空函数
$timeout(function(){},2000)
,但是如果您使用的是最近的函数,您可以完全忽略它。您应该使用它自动提供的延迟函数。然后()@Erez但是restangular默认使用Promiss…是的,当您使用用户获取而不是用户获取一些数据时function@Erez示例(plz)
function getSomeData() {
var user = Restangular.one('mylongurl');
return $timeout(2000)
.then(function(){
return user.get();
});
}