首页 > 解决方案 > 如何在Javascript中访问函数外部的变量?

问题描述

我编写了以下代码片段来读取文件中存在的总行数。但是我无法在读取流之外访问计数器的值。当我最后打印约束和目标时,它给了我 0。预期的结果应该是目标和约束的总数。请帮我解决一下这个。

const fs = require('fs');
const readline = require('readline');
const folder = './project/';
var actors = 0;
goals = 0;
constraints=0;
fs.readdirSync(folder).forEach(file => {
    actors = actors+1;
    fs.readdirSync(folder+file).forEach(f=>{
        var path = folder+file+'/'+f;
        var k = 0;
        var r1 = readline.createInterface({
            input: fs.createReadStream(path),
            output: process.stdout,
            terminal:false
        });
        r1.on('line',(line)=>{
            k++;
        });
        r1.on('close',()=>{
             if(f==='Constraints.txt'){
                 constraints=constraints+k;
            
             }
             else{
                 goals=goals+k;
            
              }
        
          })
     });

 });

console.log(actors);
console.log(constraints);
console.log(goals);

标签: javascriptnode.jsfile

解决方案


推荐阅读