【问题标题】:Angular 4 - Observable/Array or Observable/SubjectAngular 4 - Observable/Array 或 Observable/Subject
【发布时间】:2018-03-04 02:18:42
【问题描述】:

在我的项目中,我们使用数组和 Observable 来操作和存储服务中的数据。我们像这样创建 observables:

Observable.of(array)

然后我们只在添加/删除/等元素时更新数组。

在我们的组件中,我们只消费 observable 并使用异步过滤器。

我想知道这是否是一种好的做法,因为即使在 Angular 的文档中,他们也建议使用 Observable 和 Subject 的组合,而不是 Observable 和 Array。

为什么使用主题更好?性能有区别吗?

谢谢

【问题讨论】:

  • 如果你用代码展示你在做什么,而不是用文字解释你在做什么,你的问题更有可能得到回答。

标签: angular


【解决方案1】:

Observable 和 Subject 是不同的。我没有看到将数组转换为可观察对象的好处,以便您可以使用异步管道,因为如果您直接在模板中使用数组而不使用异步管道并且不将其转换为可观察对象,它将工作得很好。

根据定义,主题既是可观察的又是观察者,这意味着您可以对其进行读取和写入值。一个可观察的,您将只能从中读取值。您使用 Observable.of() 所做的是每次都在创建一个新的 observable。

对于主题,您可以使用 mySubject.next('new value') 传递它/发出新值,然后您可以像使用 mySubject.subscribe() 一样订阅这些值。

所以一个并不比另一个更好,它们只是用于不同的目的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多