javascript - 在 For 循环或 While 循环的每个循环中多次调用提示 Node.js 包的问题
问题描述
我正在开发一个节点单词猜谜游戏,我正在尝试编写提示用户输入的代码,直到他们猜不出来或猜对了单词。现在我在使用提示的回调时遇到问题。由于回调的性质,我的代码在最终等待用户输入之前遍历每个单词的所有“提示”代码。我最初尝试过使用 forEach 和 while 循环。后来尝试设置承诺,但我还没有弄清楚任何事情。
for(i = 0; i < wordsInPlay.length; i++){
if(losses < 3){
let solved = false;
wordThisRound = new Word(wordsInPlay[i]);
wordThisRound.setupWord();
getGuess();
}
}
下面是实现提示 nod.js 包的 getGuess 函数:
function getGuess() {
wordThisRound.updateWordDisplay();
if (wrongsLeft > 0) {
new Promise(function(resolve) {
prompt.get(guessObject, function(err, result) {
console.log('line 68');
if(err) throw err;
let userGuess;
const letterGuessed = result.guess.toLowerCase();
if (wordThisRound.wordObject.hasOwnProperty(letterGuessed) && wordThisRound.wordObject[letterGuessed].guessed === false) {
userGuess = true;
wordThisRound.wordObject[letterGuessed].guessed = true;
wordThisRound.wordObject[letterGuessed].changeDisplay();
}
else {
userGuess = false;
wrongsLeft--;
}
resolve({gussedRight: userGuess, letter: letterGuessed});
});
}).then(function(promise){
console.log('Inside .then function.');
new Promise(function(resolve){
gameFeedback(promise.gussedRight, promise.letter);
resolve();
});
}).then(function(){
getGuess();
});
}
else console.log("You're our of wrong guesses...You lost this round.");
}
解决方案
推荐阅读
- python-3.x - 找不到使用电子邮件地址的元素
- java - 如何获取namedGroup和输入的值关联?matcher.group()
- google-chrome - 在 PWA 中访问 Chrome Enterprise AssetID
- c# - 如何在 xamarin 中将表格行动态添加到表格布局中
- arduino - 使用模数增加/减少值时程序冻结。可能的来源是内存不足?
- javascript - Vs code 使用(dist)名称自动创建文件夹
- ios - 将数据从地图注释传递到新的视图控制器
- android - 我可以在不使用循环或任何其他技术的情况下将数据保存在 SQLite 数据库中吗?
- javascript - 无法在 ES6 中更新类属性
- amazon-dynamodb - DynamoDB 是否对删除表收费?