์๋ฌ ๋ฉ์์ง
[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);