From b7555fe55de4d2f8f874fd78bbdf3e44b3f9ec89 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Thu, 27 Oct 2022 14:44:05 +0700 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B8=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=B2=D0=B5=D0=B1=D1=81=D0=BE=D0=BA=D0=B5=D1=82=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/components/Api/Api.vue | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/client/components/Api/Api.vue b/client/components/Api/Api.vue index f055296..0898738 100644 --- a/client/components/Api/Api.vue +++ b/client/components/Api/Api.vue @@ -186,22 +186,34 @@ class Api { } async request(params, timeoutSecs = 10) { + let errCount = 0; while (1) {// eslint-disable-line - if (this.accessToken) - params.accessToken = this.accessToken; + try { + if (this.accessToken) + params.accessToken = this.accessToken; - const response = await wsc.message(await wsc.send(params), timeoutSecs); + const response = await wsc.message(await wsc.send(params), timeoutSecs); - if (response && response.error == 'need_access_token') { - await this.showPasswordDialog(); - } else if (response && response.error == 'server_busy') { - await this.showBusyDialog(); - } else { - if (response.error) { - throw new Error(response.error); + if (response && response.error == 'need_access_token') { + await this.showPasswordDialog(); + } else if (response && response.error == 'server_busy') { + await this.showBusyDialog(); + } else { + if (response.error) { + throw new Error(response.error); + } + + return response; } - return response; + errCount = 0; + } catch(e) { + errCount++; + if (e.message !== 'WebSocket не отвечает' || errCount > 10) { + errCount = 0; + throw e; + } + await utils.sleep(100); } } }