然后在内部嵌套获取方法

时间:2019-06-07 19:22:33

标签: javascript fetch

我正在使用访存API来获取包含对象数组的json文件的url。我根据需要将对象的值插入到HTML文件中。但是,我试图从json文件中获取另一个网址。每个对象都有关键的“贡献者”,其URL值是一个json文件。是否可以在then方法内使用另一个嵌套的fetch方法访问它?

'use strict';

{
  const root = document.getElementById('root');
  const select = document.createElement('select');
  root.appendChild(select);
  const url = 'https://api.github.com/orgs/HackYourFuture/repos?per_page=100';
  fetch(url)
    .then(resp => resp.json())
    .then(data => {
      select.innerHTML = data.sort()
        .map(repo => `<option value="${repo.id}">${repo.name}</option>`).join("\n");
      select.addEventListener('change', function () {
        const chosenRepoId = +this.value;
        const currentRepo = data.find(repo => repo.id === chosenRepoId);
        document.getElementById('repoInfo').innerHTML = "Repositroy Name: " + currentRepo.name + "<br />" + "Description: " + currentRepo.description + "<br />" + "Forks: " + currentRepo.forks + "<br />" + "Update date: " + currentRepo.updated_at;
        // contributors section code
        const cntrbutorsUrl = currentRepo.contributors_url;
        // fetch the contributors json file 
        fetch(cntrbutorsUrl)
          .then(resp => resp.json)
          .then(data => console.log(data));
      });
    });
  // trying to render contributors_url and get its ifno to fill the contribuers square.
}
````js

1 个答案:

答案 0 :(得分:0)

我们可以利用async / await,

(async function() {
                var firstcallresult = await fetch('https://jsonplaceholder.typicode.com/todos')
                .then(response => response.json());
                var secondcallresult = await fetch('https://jsonplaceholder.typicode.com/todos/' + firstcallresult[1].id)
                .then(response => response.json());
                console.log(secondcallresult);
            })();