質問: '101') { console.log(line); } }); ### 試したこと ### 補足情報(FW/ツールのバージョンなど) node v8.11.1
回答: `Promise` で囲えば良いと思います。 `line` イベントのときに配列にデータを追加していって、読み込み終了の `end` イベントのときに配列を `resolve` で返すようにします。 ``` var fs = require('fs'); var readline = require('readline'); readFileByLine('./test1.txt').then(lines => { console.log(lines.length); }); function readFileByLine(filePath, encoding = 'utf-8') { var lines = []; var stream = fs.createReadStream(filePath, encoding); var reader = readline.createInterface(stream, {}); return new Promise((resolve, reject) => { reader.on('end', () => { reader.close(); resolve(lines); }); reader.on('error', () => reject(err)); reader.on('line', line => { var data_num = line.slice(0, 3); if (data_num === '101') { lines.push(line); } }); }); } ```