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

时间:2013-06-17 04:55:59

标签: javascript node.js asynchronous blocking synchronous

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

我一直在尝试重写'Towers of Hanoi'的简单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) {
  ...
}

我正在努力编写播放循环。我认为问题是我不熟悉异步函数。我的播放循环伪代码类似于:

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

我已尝试promptreadline。我假设两者都没有'阻塞',因为在这两种情况下,我的while循环无限循环遍历用户输入请求而不停止。

有什么建议吗?

感谢。

0 个答案:

没有答案