首页 > 代码库 > angularJs中$q的两种写法
angularJs中$q的两种写法
带缓存处理的两种写法
过程:点击button触发load()方法,请求数据成后显示到页面中。如果已经请求过则从缓存中读取。
在线浏览
写法1:
function demo(){ if (demo.cache == undefined) { return $http.get(‘https://api.github.com/users/github‘) .success(function(data, status, headers){ demo.cache = data; return $q(function (resolve, reject) { resolve(demo.cache); }); }) }else { console.log(‘from cache‘); return $q(function (resolve, reject) { resolve(demo.cache); }); } } // 点击加载 $scope.load = function() { demo().then(function(data){ $scope.list = data.data; }) }
写法2:
感觉第二种写法好些,注意细节。
function demo(){ var deferred = $q.defer(); if (demo.cache == undefined) { $http.get(‘https://api.github.com/users/github‘) .success(function(data, status, headers){ demo.cache = data; deferred.resolve(demo.cache); }) }else { console.log(‘from cache‘); deferred.resolve(demo.cache); } return deferred.promise; } // 点击加载 $scope.load = function() { demo().then(function(data){ $scope.list = data; }) }
angularJs中$q的两种写法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。