为了账号安全,请及时绑定邮箱和手机立即绑定

P5 for 循环不会停止

P5 for 循环不会停止

翻翻过去那场雪 2021-12-01 14:32:14
我想创建一个地图就像这样。我的代码已经完成并且可以工作,但是服务器将我限制为 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();       }}
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

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


var lat = citydata[2];


loadJSON('URL', gotData);


beginShape();

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

  1. setup()函数被调用。

  2. 您调用loadJSON()函数,该函数发出请求,然后调用该gotData()函数。

  3. gotData()函数被调用。

  4. gotData()函数内部,您loadJSON()再次调用,这会发出另一个请求。

  5. gotData()函数被一次又一次地调用......

这就是您耗尽配额的原因。你为什么要loadJSON()在那里打第二个电话?你能把它去掉吗?

另请注意,您应该养成调试代码并检查开发人员工具以了解此类问题的习惯。


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信