从Readline for Node.js返回而不是console.log()数据

时间:2018-04-09 01:46:56

标签: javascript node.js readline

这被标记为重复的问题,因为它可能存在异常问题,但我已尝试添加对它的承诺,但它没有帮助。如果是一个ansync问题,有人可以向我解释一下吗?

我正在开发一个项目,我需要使用它来分析和处理txt文件中的数据。我使用Readline循环遍历txt文件的每一行,并且我能够像我想的那样操纵数据。我的问题是我无法返回数据,我只能控制它.log()它。如果我退回,我会收到一条消息,表明该回复包含无效字符'。有办法解决这个问题吗?谢谢!

const rl = readline.createInterface({
  input: fs.createReadStream(input_file_path)
})

let arrofData = [];

rl.on('line', (line) => {
  line = JSON.parse(line);
  arrofData.push(line.user, line.action, line.timestamp);
})    


rl.on('close', () => {
  let bots = [];
   for (let i = 0; i < arrofData.length; i++) {
   let counter = i;
   let dataToCheck = [];
   while (dataToCheck.length < 20) {
     dataToCheck.push(arrofData[counter]);
     counter++;
   }
   if (!dataToCheck.length - 1) {
     return bots;
   }
   let time = dataToCheck[dataToCheck.length - 1][2] - dataToCheck[0][2];
  if (time <= 480) {
    let filterForSameUser = dataToCheck.filter((username) => username[0] !== dataToCheck[0][0]);
    if (filterForSameUser.length === 0) {
      if (!bots.includes(dataToCheck[0][0])) {
        bots.push(dataToCheck[0][0]);
      }
    }
  }
}
console.log(bots);
return bots;
})

0 个答案:

没有答案