async function wait(ms) { // Schläft für eine Anzahl Millsekunden, bevor die Promise settlet. return new Promise(resolve => setTimeout(resolve, ms)); } async function handleFetch(grid, status, url) { let response = await fetch(url); if (response.ok) { game = await response.json(); // Update the HTML view. updateHtml(grid, game); // Update game status area to reflect winner / tie updateStatus(status, game); } // POLLING: Falls wir nicht am Zug sind, holen wir uns nach 500ms // den neuen Gamezustand. Die Rekursion (Selbstaufruf) führt dazu, dass // jeder Aufruf von handleFetch wieder einen nächsten Aufruf erzeugt. if (game.state == "waiting" || game.state == "playing" && !game.myturn) { await wait(500); await handleFetch(grid, status, "game"); } }