【问题标题】:How to use $http.get function if we have set of url如果我们有一组 url,如何使用 $http.get 函数
【发布时间】:2016-07-22 07:23:07
【问题描述】:

在我的情况下,我有 14 个 YouTube 数据 url,我需要使用 $http.get 函数来获取响应... 但是正在发生的事情是它需要第一个 url,但在得到响应之前它再次循环并获取另一个 url。在最后一个 url 之后,它开始执行 url 并获得响应。

代码是:

var _getCategoriesCat=function(){ 

   for(var i = 0; i < items.length; i++){

       var catId = parseInt(items[i].id);
       var title = items[i].snippet.title;

       if(showMore.showMoreValue) {
          var url ="https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&pageToken=10&regionCode=IN&type=video&videoCategoryId="+ catId +"&fields=items%2CnextPageToken%2CpageInfo%2CprevPageToken%2CregionCode&key=";
       } else {
          var url ="https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=6&pageToken=10&regionCode=IN&type=video&videoCategoryId="+ catId +"&fields=items%2CnextPageToken%2CpageInfo%2CprevPageToken%2CregionCode&key=";
       }
       xhr.get(url, function(response){
            response.name = title;
            response = [response];
            _mContents.push(PV.yoohu.model.arrayList(PV.yoohu.model.youtubeCategoryModel, response));
     })
  }
       _getLatest();
}

我有 14 件商品,如果我使用此代码,则第 4 个 url 响应将排在第 1 个,第 1 个 url 响应将在后面出现。我要一一回复。 如果有人知道,请帮助我。

【问题讨论】:

    标签: javascript http youtube


    【解决方案1】:

    将单个 URL 的获取移动到一个单独的函数中,并且应该在数组中的 URL 上占据 inde 位置。并在完成一个 url 时,调用相同的索引并增加索引。你可以试试这个(代码未测试)

     function fetchInfo(i) {
       i = i || 0;
       var catId = parseInt(items[i].id);
       var title = items[i].snippet.title;
    
       if (showMore.showMoreValue) {
         var url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&pageToken=10&regionCode=IN&type=video&videoCategoryId=" + catId + "&fields=items%2CnextPageToken%2CpageInfo%2CprevPageToken%2CregionCode&key=";
       } else {
         var url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=6&pageToken=10&regionCode=IN&type=video&videoCategoryId=" + catId + "&fields=items%2CnextPageToken%2CpageInfo%2CprevPageToken%2CregionCode&key=";
       }
    
       xhr.get(url, function(response) {
         response.name = title;
         response = [response];
         _mContents.push(PV.yoohu.model.arrayList(PV.yoohu.model.youtubeCategoryModel, response));
         if (i < items.length) fetchInfo(i + 1);
       })
     }
    
     fetchInfo()
    

    【讨论】:

      猜你喜欢
      • 2018-10-29
      • 2021-01-27
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 2021-11-14
      • 2019-11-22
      相关资源
      最近更新 更多