我尝试在node.js中编写一个程序,它逐行读取文本文件,并以2秒的延迟显示每一行。
var fs = require('fs'),
readline = require('readline');
var FileSystem_Lectura=function()
{
this._rd=null;
}
FileSystem_Lectura.prototype.abrirArchivoCSV=function(nombreArchivo)
{
this._rd = readline.createInterface
({
input: fs.createReadStream(nombreArchivo),
output: process.stdout,
terminal: false
});
}
FileSystem_Lectura.prototype.leerArchivoCSV=function()
{
self=this;
this._rd.on('line',self.mostraLineasDelay);
}
FileSystem_Lectura.prototype.mostraLineasDelay=function(linea)
{
setTimeout(self.mostraLinea,20000,linea);
}
FileSystem_Lectura.prototype.mostraLinea=function(linea)
{
console.log("Linea:"+ linea);
}
var FS =new FileSystem_Lectura();
FS.abrirArchivoCSV(process.argv[2]);
FS.leerArchivoCSV();
问题是settimeout显示了所有的行,它没有应用延迟。除了第一行。那么,我怎样才能使它正常工作呢?
自已非常感谢
2条答案
按热度按时间yjghlzjz1#
在您的串流上使用暂停/继续:
另外,2秒是2000毫秒,而不是20000毫秒。
unftdfkk2#
现在这种事情容易多了:
库
readline
和fs
现在是标准的。iter-ops是一个额外的模块。