Javascript AngularJS(Restangular):将服务方法包装为超时

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){

在basic$http中,我有这样的代码(这是一个服务):

我将其转换为Restanglar,因此:

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();
       });
}