Lambda 表达式

Q:方法中=> 是什么意思?
A:=> 将表达式分为两部分,左边指定输入参数,右边是lambda的主体函数。 如果没有参数的话,参数部分用_或()

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
add(name: string): void {
  name = name.trim();
  if (!name) { return; }
  this.heroService.addHero({ name } as Hero)
    .subscribe(hero => {
      this.heroes.push(hero);
    });
}

searchHeroes(term: string): Observable<Hero[]> {
  if (!term.trim()) {
    // if not search term, return empty hero array.
   return of([]);
  }
 return this.http.get<Hero[]>(`${this.heroesUrl}/?name=${term}`).pipe( 
tap(_ => this.log(`found heroes matching "${term}"`)), catchError(this.handleError<Hero[]>('searchHeroes', [])) );
 }

服务注入

1
 constructor(private heroService: HeroService) { }

Q:服务注入时权限声明成public还是private?
A:需要声明成private
这个参数同时做了两件事:
・ 声明了一个私有 heroService 属性。
・ 把它标记为一个 HeroService 的注入点。

可观察(Observable)的数据

Q:变量名中有$是什么意思?
A:Observable变量命名的方式:[变量名+$]

1
heroes$: Observable<Hero[]>;

1.Observable 是RxJS库中的一个关键类。
2.RxJS可以用来异步修改数据,可以用在WebAPI请求时的延迟处理等地方。