javascript - 如何使用nodejs readline库通过返回函数从stdin读取

标签 javascript node.js readline

var readline = require('readline');
var reader = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
});
function stdinput(){
    reader.on('line', function (cmd) {
        return cmd;
      });
}
console.log(stdinput());

输出:

undefined

stdinput() 函数在从 stdin 读取输入之前给出“未定义”。 我搜索了很多资源,但无法理解为什么它是异步解释的。

I am writing CLI interactive application in nodejs. it reads input many times. If we use recursion to read, it takes more stack memory and If we use callbacks, Promise and Async/await here also getting undefined before stdinput() i.e below part of the code is executing first before reading input.

最佳答案

或者您可以使用回调:

var readline = require('readline');
var reader = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
});

function stdinput(callback){
    reader.on('line', function (cmd) {
        callback (cmd);
      }); 
}

stdinput(function (cmd) {
    console.log('cmd: ', cmd); 
});

关于javascript - 如何使用nodejs readline库通过返回函数从stdin读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48722923/

相关文章:

java - 在 Java 中使用 readlines 时忽略标签

swift - 很难让 readLine() 在 HackerRank 上按预期工作

Javascript 字符串操作和范围转换

javascript - 使用 Angular 指令动态注入(inject)可运行的 JavaScript

javascript - Node 和 Chrome 浏览器中使用的 javascript 引擎有什么区别吗?

node.js - 错误 : error:04099079:rsa routines:RSA_padding_check_PKCS1_OAEP_mgf1:oaep decoding error

javascript - 定义 JavaScript 函数

javascript - 如何设置PhantomJS内部编码?

javascript - 无法设置未定义 4 的属性 'size'

c - blink-matching-paren 在 readline 提示中不起作用