【发布时间】:2017-07-31 22:16:11
【问题描述】:
我使用 RxJS 已经有一段时间了,但我仍然无法掌握主题。
文档有以下内容
var source = Rx.Observable.from([1, 2, 3]);
var subject = new Rx.Subject();
var multicasted = source.multicast(subject);
但这跟有什么不同呢?:
var source = Rx.Observable.from([1, 2, 3]);
var multicasted = source.share();
我经常必须创建公开 Observables 的类,但我不想公开 Subjects,因为它们具有下一个功能。我不希望使用类能够将事物推入管道。我目前是这样做的:
var observer = null;
var sourceToBeExposed = Rx.Observable.create(ob => {
observer = ob;
}).share();
// then later
if (observer != null)
observer.next(newValue);
我正在努力弄清楚主题存在的原因以及它们的主要目的是什么。我确定我错过了一些重要的东西。有没有人可以指出我的主题的好例子?
【问题讨论】:
-
Observable#share()不返回Subject -
根据文档,多播也没有。 reactivex.io/rxjs/class/es6/…
-
好的。问题是什么?我不明白。这和
Subjects 有什么关系? -
主题的目的是什么?它们似乎是与 Observers 合并的 Observables。用例是什么?在多播示例中,主题似乎是多余的。我试图找到一个很好的例子来说明它们的使用。
-
是的,为指针欢呼
标签: rxjs