我打电话一些参数的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
});
// ...