【发布时间】:2015-12-08 13:45:28
【问题描述】:
如何使用 Highland 实现类似于combineLatest 的行为?图书馆里好像没有类似的东西
【问题讨论】:
标签: node.js rxjs highland.js
如何使用 Highland 实现类似于combineLatest 的行为?图书馆里好像没有类似的东西
【问题讨论】:
标签: node.js rxjs highland.js
我的幼稚实现如下:
var combineLatest = function(...streams) {
var _streams = streams.map(
(s, i) => s.map((x) => {return {[i]: x}})
)
return H(_streams).merge().scan1(H.extend).filter((obj) => {
return Object.keys(obj).length === streams.length
}).map(obj =>
_(obj).pairs().reduce(
(res, [key, val]) => {
res[key] = val
return res
},
[]
)
)
}
combineLatest(users, photos).each((x) => console.log(x))
但我不担心这种解决方案的性能
【讨论】: