Node.js - blocking while loop to receive input from stdin?

I'm learning plain JavaScript on the command line, using Node.js to execute my scripts.

I've been trying to rewrite a simple Ruby implementation of 'Towers of Hanoi'.

Here is some of my code so far:

function Tower() {
  this.rods = [[8, 7, 6, 5, 4, 3, 2, 1], [], []];
  this.gameOver = false;
}

Tower.prototype.showTowers = function () {
  var i;
  for (i = 0; i < 3; i++) {
    console.log(i + 1 + ': ' + this.rods[i]);
  }
};

Tower.prototype.moveRod = function (from, to) {
  ...
}

I am struggling with writing the play loop. I think the issue is that I'm not familiar with asynchronous functions. My play loop pseudocode is something like:

until game.win? {
  game.show_towers
  until valid_move?(move) {
    move = request_move
  }
  make_move(move)
}
game.congrats

I've tried prompt and readline. I'm assuming neither are 'blocking' because in both cases my while loop infinitely cycles through user input requests repeatedly without stopping.

Any advice?

Thanks.