在角度为2的angular.io教程的服务部分,我点击了一个名为of.for的方法,例如:
- getHeroes(): Observable<Hero[]> {
- return of(HEROES);
- }
或在下面的样本:
- getHero(id: number): Observable<Hero> {
- // Todo: send the message _after_ fetching the hero
- this.messageService.add(`HeroService: fetched hero id=${id}`);
- return of(HEROES.find(hero => hero.id === id));
- }
在angular.io刚刚解释
used RxJS of() to return an Observable of mock heroes
(Observable).
并没有解释为什么我们应该使用功能,它究竟做了什么,它有什么好处?
解决方法
他们使用()的原因是因为它很容易使用它而不是真正的HTTP调用.
在实际应用程序中,您将实现这样的getHeroes(),例如:
- getHeroes(): Observable<Hero[]> {
- return this.http.get(`/heroes`);
- }
但是,由于您只想使用模拟响应而不创建任何真正的后端,您可以使用()返回虚假响应:
- const HEROES = [{...},{...}];
- getHeroes(): Observable<Hero[]> {
- return of(HEROES);
- }
你的应用程序的其余部分将工作相同,因为()是一个Observable,你可以稍后订阅或链接运算符,就像你使用this.http.get(…).