Restangular承诺绝不服务器脱机时解决?(Restangular Promise never

2019-10-22 02:27发布

我打电话一些参数的ressource,一切的伟大工程。 但是,如果的ressource不存在(服务器已关闭),我的承诺似乎从未得到解决/拒绝。 代码如下所示:

//My service:
// ...
getFooListFromBackend = function(){
  var deferred = $q.defer();

  Restangular.all('foo')
  .getList({
    param1: 123})
  .then(function(fooList){
    //success... do something in service
    deferred.resolve('foos loaded');
  })
  .catch(function(failure){
    deferred.reject('Error loading Foos, connection to Server failed');
  });

  return deferred.promise;
}
// ...



//My Controller
// ...
getFooListFromBackend()
.then(function(){
  //success... do something in controller
})
.catch(function(error){
  //show error
});
// ...

如何能当服务器关闭无论是服务还是控制器将访问赶上()功能可按。 任何建议如何处理这个问题?

======= UPDATE ==========

由于BERGI,我把它通过看递延反模式工作:

//My service:
// ...
getFooListFromBackend = function(){
  return Restangular.all('foo')
  .getList({
    param1: 123})
  .then(function(fooList){
    //success... do something in service
  })
}
// ...

//My Controller
// ...
getFooListFromBackend()
.then(function(){
  //success... do something in controller
})
.catch(function(error){
  //show error
});
// ...
文章来源: Restangular Promise never resolved when server offline?