打印空地图JavaScript

时间:2019-06-11 23:08:48

标签: javascript node.js

我正在使用地图来添加迭代文本文件的值。 在循环中读取txt文件,映射不为空。 但是在循环之外,地图返回的是空白。

function processTxt(inputFile) {

    var instream = fs.createReadStream(inputFile),
        outstream = new (require('stream'))(),
        rl = readline.createInterface(instream, outstream);

    var myMap  = new Map();


    rl.on('line', function (line) {
      var array = line.split(" ");

      if(line.startsWith("/")) {
        myMap.set(array[1], array[3];

      }

      //If I print the map here the map is not empty
      myMap.forEach((value, key) => {
           console.log(`${key} = ${value}`);
      }, myMap);

    });


    //The map outside the function here is returning empty.
    myMap.forEach((value, key) => {
        console.log(`${key} = ${value}`);
    }, myMap);


    return myMap;
}

2 个答案:

答案 0 :(得分:0)

您正在加载map之前将其打印出来。 rl.onasync函数,因此它立即继续到下一行(myMap.forEach...)。

答案 1 :(得分:0)

readline.on是一个异步函数,用于设置事件侦听器。程序的流程是如此,readline.on()函数调用被放入事件循环,并且随后的所有代码都首先发生。

观看以下精彩视频,了解事件循环:https://www.youtube.com/watch?v=8aGhZQkoFbQ