2017-12-26 1 views
1

I Dieses kodiert:Wie Array von Wert und entsprechenden Versprechen schaffen passieren .then

var promise = getHeaders(organisationUrl+tokenFirst); 
 
    promise.then(function(reposPageNumber) { 
 
     for (var i=1; i <= reposPageNumber; i++) { 
 
     let orgReposUrl = organisationUrl+'?page='+i+tokenLast; 
 
     orgReposUrlPromises.push(getData(orgReposUrl)); 
 
     } 
 
     return Promise.all(orgReposUrlPromises) 
 
    }) 
 
    .then(function(orgRepoData) { 
 
     allOrgReposData = [].concat.apply([], orgRepoData); 
 
     for (var j=0; j < allOrgReposData.length; j++) { 
 
     let repoContributorsUrl = allOrgReposData[j].contributors_url; 
 
     reposContributorsUrlPromises.push(getHeaders(repoContributorsUrl+tokenFirst)); 
 
     } 
 
     return Promise.all(reposContributorsUrlPromises) 
 
    }) 
 
    .then(function(repoContributorsData) { 
 
     console.log(repoContributorsData); 
 
    }) 
 
    .catch(function(error){ 
 
     console.log(error); 
 
    });

In für durch var "j" I markiert Schleife erhalten eine Nummer (getHeaders Funktion) von Unterseiten von URL. Wenn ich Promise.all zurückschicke, dann habe ich ein Array von Zahlen ohne URLs. Die Frage ist, wie eine Reihe von URL & Anzahl der Unterseiten zu verbinden und

+0

Was ist 'var allOrgReposData = [] .concat.apply ([], orgRepoData); 'soll das tun? – traktor53

+0

Es wird Array von Arrays – NetPax

+0

zusammengeführt ... und es kopiert ein flaches Array, weil 'concat' Nicht-Array-Argumente akzeptiert. Danke, hab es :) – traktor53

Antwort

1

Im .then der Verheißung von getHeaders Funktion, bringen Sie das Array von url & die nicht zurückgegeben .then passieren. von Unterseiten (Wert, der durch das Versprechen aufgelöst wird).

reposContributorsUrlPromises.push(
    getHeaders(repoContributorsUrl + tokenFirst) 
    .then(function(result) { 
     return [repoContributorsUrl + tokenFirst, result] 
    }) 
) 
Verwandte Themen