【发布时间】:2017-07-16 19:32:28
【问题描述】:
我有一个 Rx.Observable.webSocket 主题。我的服务器端点无法处理同时接收的消息(
我创建了另一个主题 requestSubject 并订阅了它。
然后在订阅中调用 websocket 的 next 。
requestSubject.delay(1000).subscribe((request) => {
console.log(`SENDING: ${JSON.stringify(request)}`);
socketServer.next(JSON.stringify(request));
});
使用延迟将每个下一个调用移动相同的延迟时间,然后所有下一个调用稍后发出相同的时间......这不是我想要的。
我试过delay、throttle、debounce,但不合适。
以下应该说明我的问题
Stream 1 | ---1-------2-3-4-5---------6----
after some operation ...
Stream 2 | ---1-------2----3----4----5----6-
【问题讨论】:
-
在您收到的每个值上,您可以映射该值并仅针对该值返回一个延迟的 observable,例如 myStream.flatMap(val => if(whatever reason){return Rx.Observable.of(val ).delay(10)} else { return Observable.of(val) ...
标签: javascript rxjs reactive-programming