NodeJS-readline暂停和恢复事件发射器(逐行读取)
NodeJS - readline pause and resume event emitter (read line by line)
我使用的是Node v.0.8.9及其模块readline
。由于出现EISDIR
错误,我无法使用fs.readFile()
。
我想从文件中逐行读取,做一些工作,然后(当工作完成时)才能读取下一行。因此,我尝试了以下片段(见下文),但当使用一些同步工作更改for
时,它的行为并不同步。
var fs = require('fs');
var readline = require("readline");
var filename = process.argv[2];
readline.createInterface({
input: fs.createReadStream(filename),
terminal: false
}).on("line", function(line){
this.emit("pause", line);
}).on("pause", function(line) {
console.log("pause");
console.log(line);
console.log("doing some work");
for (var i = 0; i < 1000000000; ++i);
this.emit("resume");
}).on("resume", function() {
console.log("resume");
}).on("close", function() {
console.log("close");
});
有人能阐明这个问题吗?
虽然从文件中逐行读取是很常见的,但NodeJS没有支持这种大文件的实现。因此,您需要使用缓冲区来实现它。
这里有一个效果很好——http://blog.jaeckel.com/2010/03/i-tried-to-find-example-on-using-node.html
只是一种预感。。。。尝试实际调用pause()
,而不是发出pause
事件。
也就是说,改变:
this.emit("pause", line);
到。。。
this.pause();
让我知道这是否有效。
相关文章:
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 从 Node.js 模块中的缓冲区实例中逐行读取字符串
- 读取制表符分隔的文件,逐行读取,而不是使用制表符分隔拆分每一行
- NodeJS - 逐行读取函数 + while 循环
- 节点.JS逐行读取字符串
- 使用 javaScript 逐行读取文件
- 如何使用html/javascript逐行读取/解析文本文件
- 如何使用nods.js逐行读取JSON文件
- 使用File.Reader()逐行读取的Javascript
- 如何逐行读取文本区域的HTML标记
- javascript如何从本地文本字段逐行读取并显示在列表框中
- 如何在html文本区域中逐行读取文本
- 使用javascript逐行读取本地文件
- 使用JavaScript逐行读取txt文件
- 使用Jquery逐行读取文本值
- 逐行读取文本文件.使用什么浏览器有关系吗?
- Nodejs同步逐行读取大文件
- 仅使用javascript逐行读取文本文件
- 如何逐行读取文件和发送响应的ajax请求使用java和ajax与jsonp
- 如何逐行读取txt文件?