From d5fd4c22a8cebce2199c8692f8bd9f6e25e4c184 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Jakse?= Date: Sun, 5 Apr 2020 10:22:07 +0200 Subject: [PATCH] Handle JSON errors in a separate function --- trivabble.js | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/trivabble.js b/trivabble.js index 20c91c1..d131873 100644 --- a/trivabble.js +++ b/trivabble.js @@ -470,6 +470,11 @@ ); } + function jsonError(json, e) { + console.error("An error ocurred while parsing this JSON message:", json); + fatalError(e); + } + function setRackCell(index, letter) { setTileParent(playerLetters[index], letter); } @@ -680,6 +685,14 @@ } } + function parseAndHandleReceivedData(r) { + try { + handleReceivedData(JSON.parse(r)); + } catch (e) { + jsonError(r, e); + } + } + function send(data) { if (!pollingReady && ((data.cmds && data.cmds.length) && data.cmds[0].cmd !== "joinGame")) { sendCmds(); @@ -713,7 +726,7 @@ es.onmessage = function (e) { pollingReady = true; - handleReceivedData(JSON.parse(e.data)); + parseAndHandleReceivedData(e.data); }; es.onerror = retryPolling; @@ -758,14 +771,10 @@ currentIndex = end; expectedLength = 0; } catch (e) { - console.error( - xhr.responseText.substring( - currentIndex, - end - ) - ); - - fatalError(e); + jsonError(xhr.responseText.substring( + currentIndex, + end + ), e); } retriedImmediately = false; @@ -785,11 +794,7 @@ return; } - try { - handleReceivedData(JSON.parse(xhr.responseText)); - } catch (e) { - fatalError(e); - } + parseAndHandleReceivedData(xhr.responseText); blockMove--; -- 2.30.2