angularJs中$q的两种写法
Posted 飞凡123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的两种写法的主要内容,如果未能解决你的问题,请参考以下文章