【发布时间】:2016-09-01 22:37:18
【问题描述】:
我有两个 RxJS 主题,比如 a 和 b,我需要以某种方式组合。
someComboOfAandB.subscribe({aVal, bVal} => console.log("value:", aVal, bVal));
我想将它们组合起来,如果a 和b 同步更新,则值会一起传递:
a.next(1);
// some code
b.next(2)
// at end of synchronous code / frame:
// value: 1 2
但是,如果只更新一个值,则仍会同时推送一个更新,同时推送具有两个新值的更新:
a.next(5)
// at end of synchronous code / frame:
// value: 5 2
这可能吗?如果是,那又如何?即使有可能,也应该避免吗?
【问题讨论】:
-
@LukaJacobowitz 问题是在上面的第一个示例中会触发两次更新,而我不能这样做。
-
withLatestFrom怎么样?只有在其中一个流发出时才会发出。 -
或者你正在寻找的可能是
combineLatest(...).debounceTime(...) -
debounceTime很有趣,但我不确定我能知道什么样的准时保证。例如,如果a.next和b.next之间的代码需要1ms 怎么办? 12毫秒?等等。也许debounce与requestAnimationFrame以某种方式配对?
标签: javascript reactive-programming rxjs