AngualrJS:一个XHR呼叫所有请求

时间:2015-10-09 09:12:40

标签: angularjs promise

我有一个.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承诺?

感谢。

微米。

1 个答案:

答案 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中,然后所有后续调用都将使用缓存的数据。