【发布时间】:2014-04-01 15:03:52
【问题描述】:
给定两个Bacon.Buses,我需要组合它们各自的值。然而,第二辆公共汽车的“生产力”要高得多(大约 1:200),第一辆公共汽车也更慢,它的第一个值被严重延迟,例如通过 XHR 或类似的东西获取。因此,在第一个“批次”已经通过第二个总线之后,会发出第一个总线中的第一个值。因此,Bacon.onValues(bus1, bus2, f(b1, b2)) 不起作用,bus1.sampledBy(b2, f(b1, b2)) 也不起作用。
我假设我需要一种方法来缓冲我的第二条总线并在第一条总线发出值时立即释放它。可能我需要issue #300 中提到的可暂停流之类的东西,但也许我在这里遗漏了一些非常明显的东西。
那么如何延迟第二条总线,直到第一条总线出现值?
【问题讨论】:
-
你在寻找什么样的语义?邮编可能吗?这将把第一个 A 和第一个 B 结合起来,第二个 A 和第二个 B 等等。
-
嗯。而是
(a[0], b[0]), (a[0], b[1]), (a[0], b[2]), ...直到出现a[1],然后出现(a[1], b[n]), (a[1], b[n+1]), ...等等。这实际上是一个简单的combineAsArray,但似乎我无法让它真正等待a[0]出现,所以我得到类似@987654330 的东西@ -
@Phae7rae:我不知道 SO 是否表现得很奇怪,但是您似乎已经给出了答案然后将其删除。这是一个错误吗?非常感谢您的意见!
标签: javascript reactive-programming bacon.js