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, url) { let response = await fetch(url) if (response.ok) { game = await response.json() // Update the HTML view. updateHtml(grid, 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, "game") } }