【发布时间】:2018-06-06 11:21:55
【问题描述】:
我想创建一个 observable,它接受 N 个 observable 源并使用 N 元函数对其进行转换。这个 observable 的 onNext() 将在源 observable 之一发出一个项目时调用这个函数,如下所示: f(null,null,null,o3.val,null,null) 其中 o3 是刚刚发出一个值的源.
就像 combineLatest 调用 f 时将来自所有源的最后发出的值组合在一起,但在 f 中,我们得到所有其他源的 null 值。
f 的主体可以像一个开关:
function f(v1,v2,...vn) {
if (v1) { ... }
else if(v2) { ... }
}
这可能吗?还有其他方法可以完成这种行为吗?
【问题讨论】:
-
所以你希望它发出一个
nulls 数组,但只在刚刚发出的源 Observable 的索引处你想要它的值? -
是的,这可能是一种方式
-
您将
nobservables 组合成一个值数组,然后使用一系列if语句根据发出的值选择代码路径,这似乎很奇怪。为什么不让nobservables 和n订阅您需要的代码? -
您需要根据某个时间片选择值。否则,如果它们始终同时产生值,您将不必要地强制顺序处理。
-
这基本上不就是
merge吗?
标签: javascript rxjs system.reactive reactivex