Вы можете обрабатывать ошибки глобально, используя событие error или что-то еще. Для каждого отдельного излучения вы можете использовать подтверждений . В любом случае, процедура обработки ошибок должна быть более сложной. Например:
private sendData(data: any, event: SOCKET_EVENTS): Observable<any> {
return new Observable<any>(observer => {
// set timeout before call error
let errorTimeout = setTimeout(() => {
console.error(" this.socketData not sended");
observer.error();
}, 5000);
this.socket
.emit(event, data, (responseData: Result<any>) => {
console.log("Data sended", responseData);
observer.next(responseData.data);
observer.complete();
// reset timer
clearTimeout(errorTimeout);
})
});
}
Мы ожидаем ответа в течение 5 секунд. Также вы должны добавить logi c для обработки глобальных ошибок.