Javascript 用于循环的P5未停止

Javascript 用于循环的P5未停止,javascript,java,loops,p5.js,Javascript,Java,Loops,P5.js,我想创建一个类似的地图 我的代码已经完成并正常工作,但服务器将我的请求限制为每分钟40个,因此我需要降低请求速度。我发现我的.csv列表中只有一个城市达到了服务器限制(它应该只发送一个请求) 这些错误告诉我,在达到服务器限制之前,我的循环不会停止向服务器发送具有相同城市的请求 我希望循环执行每个.length一次,并且只执行一次 怎么了 var Städte; var data; var profile = 'driving-car' var preference = 'fastest' f

我想创建一个类似的地图

我的代码已经完成并正常工作,但服务器将我的请求限制为每分钟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();   
    }
}
var Städte;
var数据;
var配置文件=‘驾驶汽车’
变量首选项='最快'
函数设置(){
createCanvas(2000年);
loadJSON('URL',gotData);
Städte=loadStrings('v3.1.csv');
}
函数gotData(数据){
var-route=data.features;

对于(var j=0;j如果我正确读取了您的代码(这有点困难,因为它的格式不正确),那么您将在
gotData()
函数中重做请求:

var lat = citydata[2];

loadJSON('URL', gotData);

beginShape();
因此,您的代码是这样工作的:

  • 调用
    setup()
    函数
  • 调用
    loadJSON()
    函数,该函数发出请求,然后调用
    gotData()
    函数
  • 调用
    gotData()
    函数
  • gotData()
    函数中,再次调用
    loadJSON()
    ,这会发出另一个请求
  • 一次又一次地调用
    gotData()
    函数
  • 这就是您耗尽配额的原因。为什么在那里有对
    loadJSON()
    的第二次调用?您能删除它吗


    还要注意的是,你应该养成习惯并检查你的代码,以了解类似的问题。

    你能发布函数的代码吗
    loadJSON
    ?很抱歉格式化-我是新手。是的,你可能发现了我的错误!我在steup()中加载了JSON然后我需要再次加载以从.csv插入lon和lat(我在gotData的循环中获得lon和lat),这样我就无法在setup()中删除loadJSON,也无法在gotData中删除它?@foliran对
    loadJSON()的第二个调用是什么
    怎么办?它与第一次调用有何不同?听起来你根本不需要第二次调用。当然第一次:loadJSON('Key'&coordinates='+''8.2472526,49.9928617 | 11.789879,50.1905748&profile='+profile+'&preference='+preference+'&format=geojson',gotData);它相当长…-我使用localhost延迟我的请求(->最大40个请求/分钟)-下一个是带有APIKey的URL和路线参数(驾驶、最短路径等)-然后是gotData第二个:loadJSON('Key+'&坐标='+lon+','+lat+')| 11.789879,50.1905748&profile='+profile+'&首选项='+preference+'&格式=geojson',gotData);这是同一个链接,但这次我从.csv中插入了lon和lat,所以也许我不需要这两个链接,但我不能在不松开鼠标的情况下删除它们resut@foliran您需要防止代码在第二次调用后调用
    loadJSON()
    。可以使用第二个函数,而不是使用
    gotData()
    对于这两种情况?或者如果添加一个
    语句?