From 2bd7cbf907833d03a35bbd7786899eb83b485523 Mon Sep 17 00:00:00 2001 From: Alexey Lunin <alexey.lunin@vereign.com> Date: Mon, 26 Jun 2023 14:47:20 +0300 Subject: [PATCH] event --- apps/web/src/api/index.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/web/src/api/index.ts b/apps/web/src/api/index.ts index 21e9da17..aab368b5 100644 --- a/apps/web/src/api/index.ts +++ b/apps/web/src/api/index.ts @@ -62,6 +62,7 @@ class GatewayApi { const conf: any = {}; let eventId = "-1"; + const events = {}; conf.fn = (message: GatewayMessageType) => { console.log(new Date().getTime() + ' Received message: ', message); if (message.id === eventId) { @@ -69,6 +70,8 @@ class GatewayApi { this.events.off('message', conf.fn); clearTimeout(conf.timeoutId); conf.resolve({ status: 200, json: () => message.data }); + } else { + events[message.id] = message; } }; this.events.on('message', conf.fn); @@ -85,6 +88,11 @@ class GatewayApi { const gatewayResponse = await fetch(url, init); const gatewayData = await gatewayResponse.json(); eventId = gatewayData.id; + if (events[eventId]) { + this.events.off('message', conf.fn); + clearTimeout(conf.timeoutId); + conf.resolve({ status: 200, json: () => events[eventId].data }); + } console.log(new Date().getTime() + ' Received event id: ' + eventId); }); }; -- GitLab