【发布时间】:2015-09-27 20:45:45
【问题描述】:
我正在尝试学习 RxJS 库。 this jsfiddle 中描述了我不太了解的一种情况(代码也在下面)。
var A= new Rx.Subject();
var B= new Rx.Subject();
A.onNext(0);
// '.combineLatest' needs all the dependency Observables to get emitted, before its combined signal is emitted.
//
// How to have a combined signal emitted when any of the dependencies change (using earlier given values for the rest)?
//
A.combineLatest( B, function (a,b) { return a+b; } )
.subscribe( function (v) { console.log( "AB: "+ v ); } );
B.onNext("a");
A.onNext(1);
我想让两次发射到“AB”日志记录。一个从将 B 更改为“a”(A 已经具有值 0)。另一个将 A 更改为 1。
但是,似乎只有订阅后发生的更改才重要(即使 A 有一个值,因此可以计算组合结果)。
我应该为此使用“hot observables”,还是使用.combineLatest以外的其他方法?
我在实际代码中的问题(比这个示例大)是我需要在订阅后进行单独的初始化,这会将内容切割到两个单独的位置,而不是在前面清楚地显示初始值。
谢谢
【问题讨论】: