如何创建值的数组和相应的Promise传递给.then

时间:2017-12-26 10:40:59

标签: javascript json

我编码了这个:

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

在由var“j”标记的for循环中,我得到了一个url子页面的数字(getHeaders函数)。当我将Promise.all返回到。然后我有一系列没有网址的数字。 问题是如何连接并传递一组url和子页数到.then

1 个答案:

答案 0 :(得分:1)

.then函数返回的承诺的getHeaders中,返回url&amp;的数组。没有。子页面(由承诺解决的价值)。

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