从Node.js中的stdin异步读取行

时间:2017-08-17 10:18:36

标签: node.js stdin

我尝试使用readlineprocess.stdin读取我的Node.js脚本中的行。我面临的问题是,对于每行读取,我必须使用异步函数处理它,我想在读取下一行之前等待它的回调:

readline.createInterface({
    input: process.stdin
}).on('line', (input) => {
    console.log(`Received: ${input}`);
    myAsyncFunction(input, (err, data) => { 
        /* Go on */ 
    });
});

我尝试使用readline.pause()resume(),但它不起作用。除了最后一行之外的所有行都是在不等待resume()的情况下读取的,然后在resume()之后读取最后一行(我认为它只是因为输入中的最后一行未以\n):

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

rl.on('line', (input) => {
    rl.pause(); // Pause after receiving a line
    console.log(`Received: ${input}`);
    setTimeout(() => {
        rl.resume(); // Resume after async operation finishes
    }, 1000);
});

0 个答案:

没有答案