繁体   English   中英

AngularJS $ http.get两次发送相同的xhr请求

[英]AngularJS $http.get send same xhr request twice

在我的应用程序中,我正在使用Angularjs-gulp-browserify-boilerplate

在我的服务中,我有下一个代码:

function ResourceService($http, AppSettings) {
    'ngInject';

    const service = {};

    service.getResource = function(params) {
        console.log('Get resource')
        return new Promise((resolve, reject) => {
            $http.get(AppSettings.apiUrl + 'v1/resorce')).then((resp) => {                
                resolve(resp);
            }).catch((err, status) => {
                reject(err, status);
            });
        });
    };

在控制器中:

function ResourceCtrl(BidService) {
    'ngInject';

    // ViewModel
    const vm = this;
    ResourceService.getResource().then((res) => {        
         vm.items = res.data;
    });

}
export default {
    name: 'ResourceCtrl',
    fn: ResourceCtrl
};

在开发控制台中: 调用getResource的结果

如何防止查询重复?

默认情况下, $http返回一个承诺。 因此您无需再次创建承诺即可解决它。 只需从服务返回请求并解决控制器的承诺即可。

 service.getResource = function(params) {
        console.log('Get resource')
        return $http.get(AppSettings.apiUrl + 'v1/resorce'))
 };

调节器

ResourceService.getResource()
  .then((res) => {        
         vm.items = res.data;
  }).catch((res) => {
    console.log(res.data)
  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM