求一个简单的ng2 http请求方法?

发布于 2022-09-06 22:04:37 字数 63 浏览 9 评论 0

小白入门,求一个简单的ng2 http请求方法

希望能把模块和引入变量都给我列举出来,谢谢谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随波逐流 2022-09-13 22:04:37
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);
            });
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文