【发布时间】:2015-11-03 09:22:18
【问题描述】:
这个RxJava buffer example(带有marble chart!)完美地描述了期望的结果:
在突发期间收集缓冲区中的项目,并在每次突发结束时发出它们,方法是使用 debounce 运算符向缓冲区运算符发出缓冲区关闭指示符
编辑:审查了How to create a RxJS buffer that groups elements in NodeJS but that does not rely on forever running interval?,我的问题似乎与使用主题而不是直接可观察对象有关。
使用套接字流生成窗口关闭事件(如下)导致打开 2 个套接字并且没有事件流出:
ws = Rx.DOM.fromWebSocket(wsURI, null, wsOpenObserver, wsCloseObserver);
var closer = ws.flatMapFirst(Rx.Observable.timer(250));
ws.buffer(closer)
.subscribe(function(e) { console.log(e, 'socket messages');});
【问题讨论】:
-
问题是什么?
-
让我们从“如何在 bufferClosingSelector 中引用源 observable 本身”开始。我没有找到关于这个主题的例子。
-
这很有帮助 - 我的问题原来是更深一层。查看修改。
-
这应该允许区分正在发生的事情。我的直觉告诉我这里有一个热与冷的问题,所以尝试将
.share()添加到ws。希望那时只创建一个套接字。然后点击 ws 查看发出的内容,例如wsRx.DOM.fromWebSocket(wsURI, null, wsOpenObserver, wsCloseObserver).tap(*log_fn*).share()。
标签: javascript reactive-programming rxjs