为什么Angular教程不更新.subscribe()中的英雄列表?

时间:2019-07-22 19:01:05

标签: angular

我不明白为什么Angular Tutorial不更新.subscribe()中的英雄列表。

这是本教程中的引言:

  

尽管组件将英雄删除委托给HeroService,但它仍然负责更新自己的英雄列表。组件的delete()方法立即从该列表中删除了要删除的英雄,并预计HeroService将在服务器上成功。   组件与heroService.delete()返回的Observable确实没有任何关系,但是无论如何它必须subscribe

最好在.subscribe()内更新英雄列表,因为那时候我们确定服务器已成功删除英雄了?

我认为假设“ HeroService将在服务器上成功”是不好的,因为我们可能会更新本地英雄列表,并且服务器的删除操作不会成功。

delete(hero: Hero): void {
  this.heroes = this.heroes.filter(h => h !== hero);
  this.heroService.deleteHero(hero).subscribe();
}

1 个答案:

答案 0 :(得分:0)

这取决于您希望自己的应用程序是乐观的还是悲观的。谢谢@R。理查兹:)

基本上,您有两种选择,

  1. 立即更新,并在失败时回滚
  2. 成功后更新。

使用第一个选项,您可以获得更快的用户体验,第二个选项则更“真实”