export function readFile(path){
return new Promise(function (resolve, reject) {
let input = fs.createReadStream(path);
const readline = require('readline');
const rl = readline.createInterface({
input: input,
crlfDelay: Infinity
});
let tmpfd;
console.log("准备读取文件了");
input.on('open',(fd)=>{
console.log("打开文件");
console.log(fd);
tmpfd = fd;
});
input.on('error',()=>{
console.log("error");
reject();
});
input.on('close',()=>{
console.log("读取完毕!input");
if(tmpfd){
fs.close(tmpfd,function () {
console.log("fs close");
});
}
resolve();
});
rl.on("line", (line) => {
console.log(line);
});
rl.on('close',function () {
console.log("readline关闭了");
});
});
}
代码如上,第一次调用的时候可以正常的读取完毕,但执行第二次的时候可能就会只打印:准备读取文件了
不知道为啥?求大佬们解惑,谢谢了