Javascript settimeout循环上没有延迟

Javascript settimeout循环上没有延迟,javascript,loops,settimeout,Javascript,Loops,Settimeout,我有一个函数,可以读取csv文件并计算两种类型的值“Client”和“Helper”之间的距离 但它似乎不起作用,因为在计算之间没有延迟您必须使用乘法器,因为在您当前的代码中,所有函数都将在500毫秒后触发,但不是增量触发。执行for()500毫秒后,所有函数将立即启动 要更改此设置,请使用如下标志创建一个乘法器: function readCSV(e){ var file = e.target.files[0]; var helferList =[]; var kund

我有一个函数,可以读取csv文件并计算两种类型的值“Client”和“Helper”之间的距离


但它似乎不起作用,因为在计算之间没有延迟

您必须使用乘法器,因为在您当前的代码中,所有函数都将在500毫秒后触发,但不是增量触发。执行
for()
500毫秒后,所有函数将立即启动

要更改此设置,请使用如下标志创建一个乘法器:

function readCSV(e){
    var file = e.target.files[0];
    var helferList =[];
    var kundenList =[];
    if (!file) {
        console.log('file could not be read');
            return;
    }
    var reader = new FileReader();
    reader.onload = function(e) {
            var contents = e.target.result;
            var result = $.csv.toArrays(contents);
        $('.output').append(",");
        for(i = 0; i< result.length; i++){
            if(result[i][0] =="Kunde"){
                kundenList.push(result[i]);
            }
            else if(result[i][0] =="Helfer"){
                helferList.push(result[i]);
                $('.output').append(result[i][1] + " "+ result[i][2] + ", ");
            }
        }
        $('.output').append("\n");
        console.log(kundenList.length);
        var k = 0;
        for(i = 0; i< kundenList.length; i++){
            $('.output').append(kundenList[i][1] + " "+ kundenList[i][2] + ", ");
            for(j=0; j <helferList.length;j++){
                // 500 * k = 500 * 1 | 500 * 2 | etc
                setTimeout(getDistance(kundenList[i],helferList[j]),(500 * k++));

            }
            $('.output').append("\n");
        }


    };
    reader.readAsText(file);
}
函数readCSV(e){
var file=e.target.files[0];
var-helferList=[];
var kundenList=[];
如果(!文件){
log('无法读取文件');
返回;
}
var reader=new FileReader();
reader.onload=函数(e){
var内容=e.target.result;
var结果=$.csv.toArray(内容);
$('.output')。追加(“,”);
对于(i=0;i对于(j=0;j),它只在我使用匿名函数setTimeout(function(){getDistance(kundenList[I],helferList[j])},(500*k++)时起作用;但是我遇到了一个问题,当传递给getDistance时,参数未知或为null。我没有足够的信息来帮助您解决该错误。延迟问题通过我的答案解决。要解决另一个问题,请创建一个新问题。我解决了问题!我必须传递getDistance()函数作为string.setTimeout('getDistance(“+kundenAddress+”,“+helferAddress+”),(2000*k++);这是一个范围问题,很高兴听到它被解决了。:)
 setTimeout(getDistance(kundenList[i],helferList[j]),500);
function readCSV(e){
    var file = e.target.files[0];
    var helferList =[];
    var kundenList =[];
    if (!file) {
        console.log('file could not be read');
            return;
    }
    var reader = new FileReader();
    reader.onload = function(e) {
            var contents = e.target.result;
            var result = $.csv.toArrays(contents);
        $('.output').append(",");
        for(i = 0; i< result.length; i++){
            if(result[i][0] =="Kunde"){
                kundenList.push(result[i]);
            }
            else if(result[i][0] =="Helfer"){
                helferList.push(result[i]);
                $('.output').append(result[i][1] + " "+ result[i][2] + ", ");
            }
        }
        $('.output').append("\n");
        console.log(kundenList.length);
        var k = 0;
        for(i = 0; i< kundenList.length; i++){
            $('.output').append(kundenList[i][1] + " "+ kundenList[i][2] + ", ");
            for(j=0; j <helferList.length;j++){
                // 500 * k = 500 * 1 | 500 * 2 | etc
                setTimeout(getDistance(kundenList[i],helferList[j]),(500 * k++));

            }
            $('.output').append("\n");
        }


    };
    reader.readAsText(file);
}