CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Angular 核心/课时/HttpClient
RawBlame
课时目录12 节

Angular 核心

  1. 01Angular 是什么
  2. 02CLI 与项目结构
  3. 03组件与模板
  4. 04指令
  5. 05服务与依赖注入
  6. 06HttpClient
  7. 07Router
  8. 08表单
  9. 09RxJS 入门
  10. 10Signals 新特性
  11. 11Angular vs React/Vue
  12. 12综合练习

HttpClient

GET/POST、Interceptor、错误处理。

35 分钟

HttpClient

HttpClient 是 Angular 官方 HTTP 客户端,返回 RxJS Observable。与 Vue 数据获取 的 fetch + Promise 不同,Angular 项目普遍用 Observable 链式处理;对比 Next.js 核心 的服务端 fetch,Angular SPA 默认在浏览器发请求。

学习目标

  • 配置 provideHttpClient() 并发起 GET/POST
  • 用 pipe 处理 map、catchError
  • 了解 Interceptor 统一加 Token

核心内容

启用 HttpClient

// app.config.ts
import { ApplicationConfig } from "@angular/core";
import { provideHttpClient, withInterceptors } from "@angular/common/http";
import { authInterceptor } from "./auth.interceptor";

export const appConfig: ApplicationConfig = {
  providers: [provideHttpClient(withInterceptors([authInterceptor]))],
};

GET 与错误处理

loadTracks() {
  this.loading = true;
  this.trackService.list().pipe(
    catchError((err) => {
      this.error = err.message ?? "请求失败";
      return of([] as Track[]);
    }),
    finalize(() => (this.loading = false)),
  ).subscribe((tracks) => (this.tracks = tracks));
}

模板三态与 Vue 相同:loading / error / 列表。

Interceptor(概念)

export const authInterceptor: HttpInterceptorFn = (req, next) => {
  const token = localStorage.getItem("token");
  if (token) {
    req = req.clone({ setHeaders: { Authorization: `Bearer ${token}` } });
  }
  return next(req);
};
Angular HttpClientVue fetchNext.js
返回ObservablePromisePromise / async
拦截Interceptor封装 fetchmiddleware
类型泛型 get<T>()手动断言同左

本站链路:Angular SPA → platform (Next.js) 或直连 Spring Boot /api/*。开发环境 proxy.conf.json 转发到 localhost:8080。

练习

  • 对接 mock ,展示 loading 与 error UI
/api/tracks
  • 写 Interceptor 为请求头加 X-Request-Id
  • 小结

    HttpClient + Observable + Interceptor 是企业 HTTP 标准组合。 下一课 Router。

    加载本节练习…
    ← 上一课服务与依赖注入下一课 →Router