Find a simple ng2 http request method?

A rookie gets started and asks for a simple ng2 http request method

I hope you can list the modules and introduced variables for me. Thank you

.
Feb.28,2021

import { Observable } from 'rxjs/Observable';
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/catch';
import { environment } from '../../environments/environment';

@Injectable()
export class DemoHttpInterceptor implements HttpInterceptor {
    constructor() {}

    public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<Result<any>>> {
        req = req.clone({
            url: `${environment.base}${req.url}`
        });
        // 
        const started = Date.now();
        // 
        return next
            .handle(req)
            .do((event: HttpEvent<any>) => {
                if (event instanceof HttpResponse) {
                    // 
                    const elapsed = Date.now() - started;
                    console.log(`Request for '${req.urlWithParams}' took ${elapsed} ms.`);
                }
            })
            .catch((res: HttpResponse<any>) => {
                switch (res.status) {
                    case 401:
                        break;
                    case 404:
                        break;
                    case 500:
                    case 502:
                        break;
                }
                // 
                return Observable.throw(res);
            });
    }
}
Menu