javascript - P5 for 循环不停

标签 javascript java loops p5.js

我想创建一个类似 this 的 map .

我的代码已完成并可以正常工作,但服务器将我的请求限制为每分钟 40 个,因此我需要放慢请求速度。我发现我的 .csv 列表中甚至有一个城市达到了服务器限制(它应该只发送一个请求)。

错误告诉我,在达到服务器限制之前,我的循环不会停止向服务器发送同一城市的请求。

我希望循环执行每个 .length 一次,而且只执行一次。

怎么了?

var Städte;
var data;
var profile = 'driving-car'
var preference =  'fastest'

function setup() {
    createCanvas(2000,2000);   
    loadJSON('URL', gotData);
    Städte = loadStrings ('v3.1.csv'); 
}

function gotData(data) {
    var route = data.features;  
    for (var j = 0; j <= 1; j++ ) {
        var citydata = Städte[j].split(/,/);   
        var lon = citydata[3];
        var lat = citydata[2];

        loadJSON('URL', gotData);

        beginShape(); 
        for (var i = 0; i < route[0].geometry.coordinates.length; i=i+500) {
            var x = route[0].geometry.coordinates[i][0];
            var y = route[0].geometry.coordinates[i][1];      
            noFill();
            vertex(x*100-200,-y*100+6000); 
        } 
        endShape();   
    }
}

my code

最佳答案

如果我正确地阅读了您的代码(这有点困难,因为它的格式不正确),那么您正在重做 gotData() 函数中的请求:

var lat = citydata[2];

loadJSON('URL', gotData);

beginShape();

所以你的代码是这样工作的:

  1. setup() 函数被调用。
  2. 您调用 loadJSON() 函数,该函数发出请求,然后调用 gotData() 函数。
  3. gotData() 函数被调用。
  4. gotData() 函数中,您再次调用 loadJSON(),这会发出另一个请求。
  5. gotData() 函数被一次又一次地调用...

这就是您用尽配额的原因。为什么要在那里第二次调用 loadJSON()?你能把它去掉吗?

另请注意,您应该养成 debugging your code 的习惯并检查你的 developer tools理解这样的问题。

关于javascript - P5 for 循环不停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52916914/

相关文章:

java - 不安全操作如何解决?

循环内的 JavaScript 闭包 – 简单的实际示例

arrays - 循环声音 ActionScript Flash

java - 用户使用扫描仪和阵列进行多个输入

javascript - 如何根据属性值合并两个javascript数组?

javascript - 如何将点击传播到光标下的所有 div?

java - java哈希表长度限制

java - Jsoup 使用表单登录(帖子)

javascript - 如何在javascript中的对象的开头添加属性

javascript - 将特定值注入(inject)对象构造函数