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

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

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. Почему это?

...