У меня есть класс BaseDataService, и у него есть метод для запросов HttpGet.
protected Get<TResponse>(
endPoint: string
): Observable<BaseResponse<TResponse>> {
return this.httpClient.get<TResponse>(this.baseUrl + endPoint).pipe(
map(data => {
const response = <BaseResponse<TResponse>>{};
response.Data = data;
response.Errors = [];
response.HasError = false;
return response;
}),
catchError(errors => {
const response = <BaseResponse<TResponse>>{};
response.Errors = [];
response.Errors.push(errors.error);
response.HasError = true;
return of(response);
})
);
}
И у меня есть LocationDeviceDataService, который расширяет BaseDataService, и у него есть метод Get LocationDevices
getAll() {
return this.Get<BasePaginatedResponse<LocationDeviceResponse>>(
EndPoints.GET_LOCATIONDEVICES
);
}
И я вызываю этот метод внутри события,
this.events.subscribe("connection-type:wifi", () => {
this.locationDataService.getAll().subscribe(t => {
localStorage.setItem('LOCATION_DEVICES', JSON.stringify(t.Data.items))
});
});
Все нормально при первом вызове, но когда другие события (https://ionicframework.com/docs/api/util/Events/)publish для "тип соединения: wifi" this.locationDataService.getAll (). Подписаться возвращает ответы в 1, 2, 4 раза медленнее.
Я уверен, что ничего плохого в бэк-энде.
Стоит ли отписаться или завершить подписку? Если я должен, у меня нет никакого триггера для этого.
Не могли бы вы сказать мне, что не так в этом коде?