atul25khanduri
11/15/2017 - 12:16 PM

Read Standard Input from console

Read Standard Input from console in JS using Await, Async & Promise

// Option 1: Using ReadLine

async function read_stdin_using_readline () {
  var readline = require('readline');

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

  return new Promise(function(resolve) {
    // rl.on('line', function(param){
    //   console.log(param);
    //   resolve(param)
    // });

    rl.question('Provide input? ', function(answer) {
      rl.close();
      resolve(answer);
    });
  });
}

// Option 2: Using process.stdin

async function read_stdin_using_stdin(){
  return new Promise(function(resolve) {
    // process.stdin.on('readable', () => {
    process.stdin.on("data", function (chunk) {
      // const chunk = process.stdin.read();
      if (chunk !== null) {
        //Stop reading input
        process.stdin.pause();

        // resolve => process.stdout.write(`data: ${chunk}`);
        resolve(chunk.toString());
      }
    });
  })
}