В setTimeout функция читает более старую версию глобальной переменной

В программе, над которой я работаю, данные возвращаются после многих запусков программы. Эта программа имеет графический вывод, поэтому есть определенная частота кадров, на которой все работает. Вот код:

function runTest(fps, testsPerRun, runs) {
    var main = setInterval(function(){
        runSetup(); //Set everything up for running the program once
        createGraphicOutput(); //Set up and clear the graphic output
        var code = setInterval(function(){
            runtest(); //Run one test
            updateCanvas(); //Update graphic output
        }, 1000 / fps);
        setTimeout(function(){
            clearInterval(code);
        }, turns * (1000 / fps));
    }, (1000 / fps) * testsPerRun);
    setTimeout(function(){
        clearInterval(main);
        interpretData(testsPerRun);
    }, ((1000 / fps) * testsPerRun) * runs);
}

Когда он запускается, interpretData функция, которая должна console.log все данные, которые он хранит, возвращают 0 для всех. Все данные находятся в массиве объектов, у которых свойство "запись" установлено в 0 в начале выполнения. Во время выполнения я подтвердил, что "запись" действительно меняется, но он думает, что это все еще 0. Почему это?

0 ответов

Другие вопросы по тегам