具有stdin / stdout的nodejs readline接口将输出引导回输入,形成无限循环

时间:2016-04-01 01:37:15

标签: node.js io stdout stdin readline

这就是我想做的事情

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('line', (line) => {
    rl.write("new line\n");
});

基本上,每当我得到一行输入时,我想打印一行到stdout的新行(这包括最后的新行)。我不想用console.log来做这件事。只要新行存在,我最终会得到一个无限循环 - 我现在写的东西就像stdin上的新行一样。

我目前的解决方法如下:

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

var working = false;
rl.on('line', (line) => {
    if (!working) {
        working = true;
        rl.write("new line\n");
        working = false;
    }
});

我想我真的不知道为什么stdout也会回到stdin。而且我希望有更清洁的方法来解决这个问题

0 个答案:

没有答案