Тестирование наследования httpClient в Angular 6

Я расширил httpClient в проекте ng, чтобы добавить настраиваемый параметр в параметры. (Это отлично работает в моем приложении)

Моя новая услуга выглядит так:

export class CustomHttpClient extends HttpClient { request(first: string | HttpRequest<any>, url?: string, options: CustomHttpOptions = {}): Observable<any> { const res = super.request(first as string, url, options); res.subscribe( () => { // Success // Some action on success }, () => { // error // Some action on error } ); return res; } post(url: string, body: any | null, options: CustomHttpOptions = {}): Observable<any> { return this.request('POST', url, addBody(options, body)); } put(url: string, body: any | null, options: CustomHttpOptions = {}): Observable<any> { return this.request('PUT', url, addBody(options, body)); } patch(url: string, body: any | null, options: CustomHttpOptions = {}): Observable<any> { return this.request('PATCH', url, addBody(options, body)); } } function addBody<T>(options: CustomHttpOptions, body: T | null) { const opts = { ...options, body }; return opts; } export interface CustomHttpOptions { body?: any; headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: 'body' | HttpObserve | any; params?: HttpParams | { [param: string]: string | string[]; }; reportProgress?: boolean; responseType?: 'arraybuffer' | 'blob' | 'json' | 'text' | any; withCredentials?: boolean; customParameter?: boolean; } 

Всего 1 ответ


Выяснив ошибку, метод подписки, который я использую в пользовательском запросе, вызывает дублирующий вызов, поэтому это устраняет проблему:

super.request(first as string, url, options).pipe(share());

Есть идеи?

10000