I am struggling with RxJS. Some questions about Observable
when I chain two subscribe() method together I got error "subscribe does not exist in type Subscription". Why is that?
someObs.map(...).subscribe(...).subscribe(...)
Is there a way to check an observable data array count without subscribing?
If Observable clears the data items after emitting them is there a way to refill new data items into the same observable instance without creating a new one? if yes, how?
答案 0 :(得分:1)
所有Observable都会包装各种数据源类型,以便它们通过公共接口发出事件。因此Rx.Observable.fromArray
和Rx.Observable.fromPromise
都生成具有相同语义的Observable,唯一的区别是事件的数量以及生成这些事件的时间。
Observables
是懒惰的,所有花哨的方法链接都没有做任何事情,直到最终订阅了Observable。所以subscribe
真的很像说"执行"或者" go",它将允许事件开始在Observable中移动。
不确定你的意思&#34; Observable data array&#34;,请参见第1点。如果将数组传递给Observable,那么你应该能够检查的大小< / EM>
它没有,但是从某种意义上说,你可以&#34;重新填充&#34;通过简单地重新订阅基于数组的Observable,将开始再次发送事件的过程。正如dvlsg所提到的,你也可以使用Subject
将事件显式地推送到观察者,但在99%的情况下,它的使用可以而且应该避免,因为它被用作拐杖以避免实际上< EM>反应性
即。
var source = Rx.Observable.fromArray([1, 2, 3, 4]);
//First subscription, prints all of the events from array
source.subscribe(x => console.log(x));
//Second subscription, prints all the events *again* because
//this is a new subscription occurrence
source.subscribe(y => console.log(y));