From 33aee5ec8c7d2013a771a9ecedc277eac4f0e418 Mon Sep 17 00:00:00 2001 From: FranciscoMateusVG <49985463+FranciscoMateusVG@users.noreply.github.com> Date: Tue, 6 Feb 2024 19:23:04 -0300 Subject: [PATCH] FailSafeSocket doesn't change from online to offline #72 --- .../02-state-failsafe-socket/onlineState.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/09-behavioral-design-patterns/02-state-failsafe-socket/onlineState.js b/09-behavioral-design-patterns/02-state-failsafe-socket/onlineState.js index 75135574..61c17fa1 100644 --- a/09-behavioral-design-patterns/02-state-failsafe-socket/onlineState.js +++ b/09-behavioral-design-patterns/02-state-failsafe-socket/onlineState.js @@ -1,23 +1,26 @@ export class OnlineState { - constructor (failsafeSocket) { + constructor(failsafeSocket) { this.failsafeSocket = failsafeSocket this.hasDisconnected = false } - send (data) { + send(data) { this.failsafeSocket.queue.push(data) this._safeWrite(data) } - _safeWrite (data) { + _safeWrite(data) { this.failsafeSocket.socket.write(data, (err) => { if (!this.hasDisconnected && !err) { this.failsafeSocket.queue.shift() + } else { + this.hasDisconnected = true + this.failsafeSocket.changeState('offline') } }) } - activate () { + activate() { this.hasDisconnected = false for (const data of this.failsafeSocket.queue) { this._safeWrite(data)