์—๋Ÿฌ ๋ฉ”์‹œ์ง€

[logs, logsInfo] = inspectFile(filePath);
TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))

์ฝ”๋“œ ์กฐ๊ฐ

const main = (filePath) => {
  [logs, logsInfo] = inspectFile(filePath);
  filtering("processName", "bluetoothd");
  count("processName");
  sort("processName");
};

์—๋Ÿฌ ์ด์œ 

์ฒ˜์Œ์—” ํŒŒ์ผ์„ ๊ฒ€์‚ฌํ•  ๋•Œ ๊ทธ์ € ํ•จ์ˆ˜๋กœ readline ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐ›๊ณ , ์•Œ์•„์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‹ค์Œ ์ฝ”๋“œ๋กœ ์˜ฎ๊ฒจ๊ฐˆ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์—๋Ÿฌ๊ฐ€ ๋–ด๋‹ค. ์ด์œ ๋ฅผ ์‚ดํŽด๋ณด๋‹ˆ readline ๋ชจ๋“ˆ์ด ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ๋งŒ๋“  ๋‹ค๋ฅธ ํ•จ์ˆ˜๋“ค์ด ๋จผ์ € ์‹คํ–‰๋˜๊ณ , ์ด ๋•Œ๋ฌธ์— ์—†๋Š” ๋ฐฐ์—ด์„ ์ฐธ์กฐํ•˜๋ ค ํ•˜๋ฉด์„œ ๋‚˜์˜จ ์—๋Ÿฌ์˜€๋‹ค.

๋ณด์™„ํ•˜๊ธฐ

function inspectFile(filename) {
  return new Promise((resolve, reject) => {
    ...
    reader.on("line", (line) => {
      inspect(line, logs, logsInfo);
    });
    reader.on("close", () => {
      resolve([logs, logsInfo]);
    });
    
  });
}

readline ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•œ ํ•จ์ˆ˜๋ฅผ Promise ๊ฐ์ฒดํ™”์‹œ์ผœ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ž‘์—…์ด ๋ชจ๋‘ ๋๋‚  ๋•Œ๊นŒ์ง€ await์„ ๊ฑธ์–ด์ฃผ์–ด ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ฒŒ๋” ์„ค๊ณ„ํ–ˆ๋‹ค.

const main = async (filePath) => {
  [logs, logsInfo] = await inspectFile(filePath);