2016-07-22 7 views
0
haben

In meiner Situation habe ich 14 YouTube Daten URL, und ich muss mit $ http.get -Funktion übergeben, um die Antwort zu bekommen ... Aber was passiert Es dauert die erste URL, aber bevor die Antwort kommt, wird sie erneut durchlaufen und eine andere URL genommen. Nach der letzten URL wird die URL gestartet und Antworten erhalten.

-Code ist:

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(); 
} 

I 14 Einzelteile haben, wenn ich diesen Code 4. url Antwort verwenden kommt 1. und 1. url Antwort später kommt. Ich möchte Antworten eins nach dem anderen. Wenn jemand weiß, bitte hilf mir.

Antwort

0

Das Abrufen einer einzelnen URL in eine separate Funktion verschieben und in der Position in der URL im Array übernehmen. Und nach Abschluss einer URL, rufen Sie das gleiche mit dem Index inkrementiert. Sie können dies versuchen (Code nicht getestet)

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() 
+0

Sein Funktionieren Sir. Danke – chandru

+0

@chandru Dann können Sie es als beantwortet markieren. –