Observable 是 RxJS 库中的一个关键类。
hero.service.ts中:
import { Observable, of } from 'rxjs';
getHeroes(): Observable<Hero[]> {
return of(HEROES);
}
返回一个 Observable<Hero[]>,它会发出单个值。
heros.component.ts中:
Observable 版本
getHeroes(): void {
this.heroService.getHeroes()
.subscribe(heroes => this.heroes = heroes);
}
这种赋值可能立即发生,也可能会在几分钟之后。
subscribe() 方法把这个英雄数组传给这个回调函数,该函数把英雄数组赋值给组件的 heroes 属性。
使用这种异步方式,当 HeroService 从远端服务器获取英雄数据时,就可以工作了。
原始版本:
getHeroes(): void {
this.heroes = this.heroService.getHeroes();
}
这种赋值是同步的,这里包含的假设是服务器能立即返回英雄数组或者浏览器能在等待服务器响应时冻结界面。