javascript – 为什么我们应该使用()函数的RxJs?

在角度为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(…).

()的唯一作用是它在订阅时立即将其参数作为单个排放发出,然后发送完整的通知.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...