RxJs 可观察的 zip 可观察数组
RxJs Observable Zip Array of Observables
有一个使用 zip 组合固定数量的可观察量的示例,如下所示:
var range = Rx.Observable.range(0, 5);
var source = Observable.zip(
range,
range.skip(1),
range.skip(2),
function (s1, s2, s3) {
return s1 + ':' + s2 + ':' + s3;
}
)
我的问题是,如果我有一个可观察量数组(长度可以是任何东西),如何像zip一样完成相同的工作?
var arr = [observable1, observable2, ..]; //like 100 of them!
var source = Observable.zip(
//how to put each observable here?
function (__how to put argument here?_) {
return /* loop through arguments*/;
}
)
理论上,您可以使用 .apply()
和 arguments
变量的组合来实现此目的。完全披露:我没有尝试过这段代码。
var arr = [observable1, observable2, ..]; //like 100 of them!
var source = Observable.zip.apply(Observable,
arr.concat(function (varargs) { // using "varargs" purely for documentation
Array.prototype.forEach.apply(arguments, function (observableValue) {
/* do something with observableValue */;
});
})
);
自从 ES6 问世以来,你可以简单地将数组作为函数的参数传递,如下所示:
const arr = [ observable1, observable2, ...]
const source = Observable.zip(...arr)
为我工作:D
相关文章:
- knockoutjs可观察数组
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- 敲除:可观察数组没有被正确绑定——只有1个结果显示,而api返回6
- $scope$观察数组中的一个特定对象——Angular JS控制器
- 如何使用敲除映射将空值映射到空的可观察数组
- 以不同的方式对相同的可观察数组进行排序
- 如何在 Knockout.js 中更新可观察数组后立即使用 DOM 容器
- Knockout.js:如何根据可观察数组中的更改更改值
- 使用挖空.js如何刷新 Select 元素中的可观察数组
- 更新挖空中可观察数组中项目的属性
- 动态地向可观察数组中的特定项添加绑定(例如hasfocus)
- AngularJS:观察数组属性
- 对可观察数组foreach的更新删除了格式化knockoutjs
- 当通过Ajax成功回调更新可观察数组时,启用绑定中断
- 如何获取复选框值并将其插入到挖空中的可观察数组中
- 剔除不更新辅助表的可观察数组
- 如何让Knockout可观察数组与jQuery对话框一起工作
- 更改可观察数组会更改自定义绑定处理程序knockoutjs的可见性
- 正在更新Knockoutjs可观察数组项
- Knockout,无法解析空可观察数组中的绑定错误