2015-08-13 6 views
0

У меня есть следующие функции в моей фабрике

getSource:function(){ 
      // If not connected to internet 
      return LocalStorage.getObject("sourcesAll"); 
      // If connected to internet 

      return SourceRest.getInstance().query().$promise.then(function(data){ 
       LocalStorage.setObject("sourcesAll",data); 
       return data; 
      }); 
     } 

Мой SourceRest только вызов $ ресурса

Что я хочу, что если пользователь подключен к Интернету, он загружает последние данные и сохраняет их в свой Localstorage, а затем возвращает их.
Если вы не подключены, возьмите данные из Localstorage и верните их.

Возврат данных с обещанием работает нормально

return SourceRest.getInstance().query() 

Кроме того, возвращение из LocalStorage (если что-то сохраняется) работает

return LocalStorage.getObject("sourcesAll"); 

Могу ли я вернуть мои данные из АЯКС обратного вызова или есть ли другой способ сделать это?

ответ

0

Понял работает, используя $ q.defer()

// If not connected to internet 
return LocalStorage.getObject("sourcesAll"); 
// If connected to internet 

var result= $q.defer(); 

SourceRest.getInstance().query().$promise.then(function(data){ 
     LocalStorage.setObject("sourcesAll",data); 
     result.resolve(data); 
}); 
return result.promise; 
Смежные вопросы