Как сказал @Robin Zigmond, проблема заключалась в том, что он мгновенно переходил к следующему ходу, независимо от того, что включает передачу сообщения следующему ходу игрока.
Я сделал несколько изменений, и это сработало.
function turn(squareId) {
//code...
checkWinAndDraw();
if (gameEnded != true) {
setNextPlayerTurn(player);
}
}
function checkWinAndDraw() {
if (//condition)
} else {
checkDraw();
}}
function checkDraw() {
if (board.every(square => square == 'X' || square == 'O')) {
displayMessage(`It's a Draw!`);
gameEnded = true;
}
}
function endGame() {
//code...
displayMessage(`${player} player Won!`)
gameEnded = true;
}