For-Loop и Async Callback в Node.js?

Я новичок в JavaScript и Node.js. Я хочу зацикливаться через каталог и добавить все файловые данные (не другие каталоги) на массив. Как вы видите ниже, есть проблема с моим кодом, поскольку обратный вызов, вероятно, позвонится после завершения цикла For Open, поэтому используя «I» -Variable в методе обратного вызова не будет работать. Но как код должен выглядеть так, чтобы приведенный ниже фрагмент работает? У него есть что делать с закрытиями?

Спасибо за помощь!

    fs.readdir(SYNCDIR, function(err1, files) {
        var filesOnly = [];

        if(!err1) {

            for(var i = 0; i < files.length; i++) {

                var imgFilePath = SYNCDIR + '/' + files[i];
                fs.stat(imgFilePath, function(stat){

                    if (stat.isFile()){
                        filesOnly[i] = stat; // This will not be correct since the for-loop has finished
                    }
                });

            }
        }
    });
21
задан exkoria 1 September 2011 в 09:41
поделиться