P5 for 循环不会停止

我想创建一个地图就像这样。


我的代码已经完成并且可以工作,但是服务器将我限制为 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();   

    }

}


翻翻过去那场雪
浏览 128回答 1
1回答

慕标琳琳

如果我正确阅读了您的代码(这有点困难,因为它的格式不正确),那么您正在重新执行gotData()函数内部的请求:var lat = citydata[2];loadJSON('URL', gotData);beginShape();所以你的代码是这样工作的:该setup()函数被调用。您调用loadJSON()函数,该函数发出请求,然后调用该gotData()函数。该gotData()函数被调用。在gotData()函数内部,您loadJSON()再次调用,这会发出另一个请求。该gotData()函数被一次又一次地调用......这就是您耗尽配额的原因。你为什么要loadJSON()在那里打第二个电话?你能把它去掉吗?另请注意,您应该养成调试代码并检查开发人员工具以了解此类问题的习惯。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java