我尝试使用readline
从process.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);
});