我有一个.service(),其中定义了我的webApp可以用来(通过$http)调用REST API服务器的所有函数。现在我有了一个页面/路由,其中我的.service()中的一个函数被调用了2-3次,这将创建2-3个对REST API的相同请求。这是我的函数:
getCities: function (redazionale) {
return $http({method : 'get',
url : urlwS+'/API/URL',
headers : { 'X-CSRF-Token' : ipCookie('csrftoken')},
data : { 'redazionale' : redazionale,'active' : 1 },
cache: false
})
},有没有可能只通过$http执行一次调用,然后为所有其他调用返回$http promise?
谢谢。
M.
发布于 2015-10-11 02:59:46
是的,当然。promise让缓存变得极其简单--只需保留promise:
var cachedCities = null;
getCities: function (redazionale) {
return cachedCities || (cachedCitices = $http({method : 'get',
url : urlwS+'/API/URL',
headers : { 'X-CSRF-Token' : ipCookie('csrftoken')},
data : { 'redazionale' : redazionale,'active' : 1 },
cache: false
}));
},这将在第一个请求的promise中存储数据,然后所有后续调用都将使用缓存的数据。
https://stackoverflow.com/questions/33034341
复制相似问题