我有一个.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承诺?
感谢。
微米。
答案 0 :(得分:0)
是的,当然。承诺使缓存非常简单 - 只需保存承诺:
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中,然后所有后续调用都将使用缓存的数据。