簡體   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