在JS中预加载多个API调用

时间:2018-05-02 14:27:15

标签: javascript p5.js

this.preload = function() {

// Load JSON and table data
this.countriesCoords = loadJSON("data/countries.json",

// on success
function(){
  console.log("Country data loaded!");
},
// on failure to load
function() {

  alert("Error! Country data failed to load!");

});
  for( var i = 0; i < Object.keys(this.countriesCoords).length; i++) {

    var aux = loadJSON(this.getUrl(this.countriesCoords[i].name), this.processJSON);
   this.countriesCoords[i].currentDate = aux.total_population[0].date;
   this.countriesCoords[i].currentPopulation = aux.total_population[0].population;

   this.countriesCoords[i].nextDate = aux.total_population[1].date;
   this.countriesCoords[i].predictedPopulation = aux.total_population[1].population;
 }
}
    this.processJSON = function(data) {
 console.log(data);


  }
    this.drawPoints = function (data) {

 for( var i = 0; i < Object.keys(data).length; i++ ) {

  if(this.calculateVariation(data[i].currentPopulation, data[i].predictedPopulation) > 0 ) {

  fill(0,255,0,100);
  ellipse(data[i].longitude, data[i].latitude, 5,5);

} else {

 fill(255,0,0,100);
 ellipse(data[i].longitude, data[i].latitude, 5,5);

  }
 }
};

function draw(){

  this.drawPoints(this.countriesCoords);
}

我正在尝试向API发出多个请求以获取国家/地区的人口数据。构建api URL的国家/地区名称存储在countries.json文件中。来自api的数据包含当前和明天的日期以及该国家的人口,然后我必须将api数据与每个国家/地区进行匹配。我试图在预加载后执行此操作,但在动画完成之前未加载数据。我也尝试使用loadJson()的回调函数,但我没有设法将api数据与它所引用的国家匹配。我的问题是如何预加载所有api数据并将其添加到countriesCoords?

还试图找到其他数据集,但无法找到我要找的东西。

0 个答案:

没有答案