var fs = require(‘fs’); //var filename = process.argv[2]; var filename = ‘test.txt’; //var filename = __filename; var rl = require(‘readline’).createInterface({ input: fs.createReadStream(filename), terminal: false });
var i = 0 ; rl.on(‘line’, function(line){ console.log('Line: ’ + line); i++; if(i===4){ console.log(‘here’); rl.pause();//怎么不起作用 //process.exit(0); } });
找个上万行的文本文件来测试,停止的行数设定到2000以上。 rs.pause停止的是下一次的读文件操作,已经读取的数据会一直触发line事件,直到消耗完毕,因此pause的时效性取决于fs读文件的内部缓存大小(64K?)。不想处理n行后的数据,那么取消当前监听器吧,rl.removeAllListeners(‘line’)
原来如此,非常感谢回答!! 顺便弱弱的问下,这些东西从哪儿看的? 好像api没有说的这么清楚啊