【发布时间】:2017-09-24 02:05:43
【问题描述】:
我想知道是否有一种简单的方法来获得“同步”读取线或至少在 node.js 中获得同步 I/O 的外观
我用这样的东西,但是很尴尬
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false
});
var i = 0;
var s1 = '';
var s2 = '';
rl.on('line', function(line){
if(i==0) { s1 = line; }
else if(i==1) { s2 = line; }
i++;
})
rl.on('close', function() {
//do something with lines
})'
如果它像类似的东西一样简单,我更愿意这样做
var s1 = getline(); // or "await getline()?"
var s2 = getline(); // or "await getline()?"
有用的条件:
(a) 不喜欢使用外部模块或 /dev/stdio 文件句柄,我正在向代码提交网站提交代码,但这些在那里不起作用
(b) 可以使用 async/await 或生成器
(c) 应该是基于行的
(d) 处理前不需要将整个标准输入读入内存
【问题讨论】:
-
@supersam654 我添加了一些额外的条件来重复数据删除。我的条件是允许使用 getline 类型函数读取(单)行,使用 readline 接口以干净的“同步”方式或使用“async/await”函数来模拟。