Мне удалось найти решение своей проблемы. Мне нужно было подождать, пока пользователь сделает ставку, прежде чем код Javascript продолжится. Я достиг этого, используя Javascript обещание и таймеры.
let bet_marker = false;
// socket.io response from client
socket.on('bet', function() {
bet_marker = true;
});
const aPromise = new Promise((accept, reject) => {
setTimeout(function() {
clearInterval(sI1);
reject();
}, 1000);
let sI1 = setInterval(function() {
if(bet_marker == true)
{
clearInterval(sI1);
accept();
}
}, 500);
});
try {
console.log("User Bet");
await aPromise;
}
catch(e)
{
console.log("Time Ran Out);
console.log(")
}
В своем коде я создаю обещание, setInterval и setTimeout. Оператор await aPromise ожидает обещания вызвать оператор accept (), прежде чем продолжить. Функция setInterval просматривает каждые 500 мс, чтобы увидеть, изменилась ли переменная bet_marker. Это изменяется только тогда, когда ставка получена от клиента. После изменения мы знаем, что ставка была получена, и функция accept () вызывается для завершения обещания. У меня также есть оператор setTimeout в коде, который будет вызывать, который отклонит обещание после 10000 мс (10 с). Это дает игроку 10 секунд, чтобы ответить своей ставкой, но автоматически сбрасывает пользователя, если за это время не было получено ни одной ставки.
Надеюсь, это имеет смысл, поскольку я не профессиональный программист ...