Javascript Node.js-阻塞while循环以接收来自stdin的输入?

Javascript Node.js-阻塞while循环以接收来自stdin的输入?,javascript,node.js,asynchronous,blocking,synchronous,Javascript,Node.js,Asynchronous,Blocking,Synchronous,我正在命令行上学习普通JavaScript,使用Node.js执行我的脚本 我一直在尝试重写的一个简单Ruby实现 以下是我到目前为止的一些代码: 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++

我正在命令行上学习普通JavaScript,使用Node.js执行我的脚本

我一直在尝试重写的一个简单Ruby实现

以下是我到目前为止的一些代码:

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) {
  ...
}
我试了又试。我假设两者都不是“阻塞”,因为在这两种情况下,我的while循环无限循环地重复执行用户输入请求而不停止

有什么建议吗


谢谢。

您能给我们展示一些您尝试过的真实循环代码吗?伪代码在逻辑上是正确的,您只需要使用回调和递归而不是循环。可能会使代码清理。也许你应该考虑使用某种CLI模块。请看这里的一个很好的例子:可能重复的
until game.win? {
  game.show_towers
  until valid_move?(move) {
    move = request_move
  }
  make_move(move)
}
game.congrats