У меня есть abstract.service, который выполняет операции CRUD.Сейчас я перехожу с ionic 3 на ionic 4, но похоже, что rxjs
обновлен и больше не позволяет мне это делать:
httpGet(url, requestObject = new RequestObject, onSuccess = (resp, listData) => {}, onFail = (err) => {}) {
let data;
let headers;
return this.http.get(url, {headers: headers, params: data})
.map(response => response).catch(this.handleError).subscribe(
(resp) => {
if (!resp) resp = {items: []};
if (requestObject.loader) this.globalService.onHideLoader.emit(requestObject.loaderId)
onSuccess(resp, {});
requestObject.onDone(resp);
},
(err) => {
if(requestObject.loader) this.globalService.onHideLoader.emit(requestObject.loaderId);
// Execute own errorHandling when response has no errorHandling
// if(!requestObject.hasErrorHandling) this.onError(err);
onFail(err);
requestObject.onDone(err);
}
);
}
Итак, как я могу преобразовать этот фрагмент кода выше впример с Pipable operators
вот что я пробовал:
httpGet(url, requestObject = new RequestObject, onSuccess = (resp, listData) => {}, onFail = (err) => {}) {
let data;
let headers;
return this.http.get(url, {headers: headers, params: data}).pipe(
map(response => {
if (!response) response = {items: []};
if (requestObject.loader) this.globalService.onHideLoader.emit(requestObject.loaderId)
onSuccess(response, {});
requestObject.onDone(response);
}),
catchError(error => {
this.handleError(error);
if(requestObject.loader) this.globalService.onHideLoader.emit(requestObject.loaderId);
// Execute own errorHandling when response has no errorHandling
if(!requestObject.hasErrorHandling) this.onError(err);
onFail(error);
requestObject.onDone(error);
})
);
}
, но при методе catchError
это выдает мне эту ошибку:
Argument of type '(error: any) => void' is not assignable to parameter of type '(err: any, caught: Observable<void>) => ObservableInput<{}>'.
Можеткто-нибудь помочь мне преобразовать старый метод в новый?