mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
receive error when sending message on offline
This commit is contained in:
@@ -25,7 +25,7 @@ export class SignalRConnection {
|
||||
private reconnect = true
|
||||
|
||||
private sendDataSubject: BehaviorSubject<{method: string, data: any}> = new BehaviorSubject<{method: string, data: any}>(null);
|
||||
|
||||
private pendingRequests: Map<string, { resolve: Function; reject: Function }> = new Map();
|
||||
url: string
|
||||
|
||||
constructor({url}) {
|
||||
@@ -61,6 +61,13 @@ export class SignalRConnection {
|
||||
console.log('Connection closed');
|
||||
this.connectionStateSubject.next(false);
|
||||
this.disconnectSubject.next(true)
|
||||
|
||||
this.pendingRequests.forEach((_, requestId) => {
|
||||
const { reject } = this.pendingRequests.get(requestId);
|
||||
reject(err('Connection closed================!s'));
|
||||
this.pendingRequests.delete(requestId);
|
||||
});
|
||||
|
||||
if(this.reconnect) {
|
||||
this.attempReconnect();
|
||||
}
|
||||
@@ -98,12 +105,17 @@ export class SignalRConnection {
|
||||
console.log('sendMessage', data)
|
||||
this.hubConnection.invoke("SendMessage", data)
|
||||
|
||||
//
|
||||
this.pendingRequests.set(data.requestId, { resolve, reject: (data) => resolve(data) });
|
||||
|
||||
this.messageSubject.pipe(
|
||||
filter((message: any) => data.requestId == message?.requestId),
|
||||
first()
|
||||
).subscribe(value => {
|
||||
resolve(ok(value))
|
||||
console.log('Received valid value:', value);
|
||||
//
|
||||
this.pendingRequests.delete(data.requestId);
|
||||
});
|
||||
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user