Я работаю над игрой с угадыванием слов узла и пытаюсь получить код, который предлагает пользователю вводить данные, пока у них не закончатся догадки или они не получат правильное слово. В данный момент у меня проблема с обратным вызовом подсказки. Из-за природы обратных вызовов мой код проходит через весь «подсказочный» код для каждого слова, прежде чем, наконец, дождаться ввода пользователя. Я попытался использовать цикл forEach и while изначально. Позже попытался настроить обещания, но я ничего не понял.
for(i = 0; i < wordsInPlay.length; i++){
if(losses < 3){
let solved = false;
wordThisRound = new Word(wordsInPlay[i]);
wordThisRound.setupWord();
getGuess();
}
}
Вот функция getGuess, реализующая пакет prompt nod.js:
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.");
}