Javascript 在js中迭代后,数组长度设置为零

Javascript 在js中迭代后,数组长度设置为零,javascript,arrays,node.js,mean-stack,Javascript,Arrays,Node.js,Mean Stack,当我在循环中安慰它时,testArray有长度,但在外部它的长度为零。任何人都可以建议帮助。谢谢 function (testData,done) { try { testData.forEach(function(k,l){ fs.readFile(toReadFileName, function read(err, data) { if (err)

当我在循环中安慰它时,testArray有长度,但在外部它的长度为零。任何人都可以建议帮助。谢谢

function (testData,done) {
            try {
                testData.forEach(function(k,l){
                    fs.readFile(toReadFileName, function read(err, data) {
                        if (err) {
                            helper.logs('addBlog','blog',err,'console'); 
                            throw err;
                        }
                        var resData = data.toString();  
                        var text = k.text;
                        text = text.replace('style','class');
                        modData = resData.replace('_CLASS_['+l+']',k.class).replace('_IMAGE_['+l+']',k.image).replace('_TITLE_['+l+']',k.title).replace('_DATE_['+l+']',k.date).replace('_AUTHOR_['+l+']',k.author).replace('_TEXT_['+l+']',k.text).replace('_BLOG_ID['+l+']',k.blog_id);
                        testArray.push(modData);
                       console.log(testArray)--->console.log(testArray.length)---->8
                    });  
                });


                console.log(testArray.length);-------->Empty?
                var newData = testArray.toString();
                var pageNum = v.toString()[0],

                fileName = 'public/amp/test2/amp-blog-list-'+pageNum+'.html';
                fs.writeFile(fileName, newData, function(err) {
                    if(err) {
                        return console.log(err);
                    }
                    console.log("The file was saved!");
                }); 
            } catch(e) {
                console.log(e)
            }
        }

因为它是异步的…它是空的,因为它还没有设置,
console.log(testArray.length)
fs.readFile(toReadFileName,函数read(err,data){
完成之前很久就会执行。