преобразовать старый httpGet в Pipeable операторов - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть 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<{}>'.

Можеткто-нибудь помочь мне преобразовать старый метод в новый?

...