我试图从本地存储中获取一些数据,但我想在准备好之后使用日期.就像是:
// this belongs to a Helper factory getData: function(){ var deferred = jQuery.Deferred(); setTimeout(function(){ var data = { description: localStorageService.get('description'),}; deferred.resolve() },10); return deferred.promise(); },// I set it up so that in the controller I can do // $scope.data = Helper.getData();
与我的示例类似,我只想在从localstorage获取描述后返回数据对象
我正在使用angularjs,所以我希望在解决了承诺后在我的视图中显示{{data}}.比如可能使用ng-hide或类似的东西.
无论如何,我的问题是关于建立这个承诺.
有任何想法吗?
解决方法
好吧,$q是通常用于处理angularjs中的promise的库,因为你是从本地存储中读取的,这是一个同步操作我不知道你为什么要返回一个promise,这通常是以角度来完成的.是这样的:
getData: function(){ var deferred = $q.defer(); $timeout(function(){ var data=localStorageService.get('description'),deferred.resolve(data); },3000); return deferred.promise; }
用法:
getData().then(function(data){ console.log(data); })