我试图通过在控制台上制作一个tic tac toe游戏来开始使用Javascript。这将需要一个while循环来接收来自用户的移动。
事实证明这比我预期的要困难得多。有一种我想念的简单方法。
我尝试过使用async.whilst和sync-prompt。前者只是让我进入了一个无限循环,当我尝试使用npm install下载它时后者出错了。感谢您提供任何帮助!
答案 0 :(得分:1)
您不需要使用库。只需使用node的内置readline
。
以下是他们的例子:
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('What do you think of Node.js? ', (answer) => {
// TODO: Log the answer in a database
console.log('Thank you for your valuable feedback:', answer);
rl.close();
});
答案 1 :(得分:0)
我发现了prompt-sync。这与你试过的那个不一样。在任何情况下,如果由于某种原因导致npm安装失败,您始终可以从its github page获取源代码
这不是一个完美的解决方案,至少对我而言,因为它没有在答案中捕捉重音字符或西班牙语字符。
无论如何,这在节点上似乎不是一件容易的事。
更新:我找到了另一种方法,至少就我的目的而言,从节点8开始,使用async和await结合IIFE:
(async function() {
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function prompt(message) {
return new Promise((resolve, reject) => {
rl.question(message, (answer) => {
resolve(answer);
});
});
}
var answer = await prompt("What do you have to say? ");
console.log("\nYou answered: \n" + answer);
rl.close();
})();