RxJS 5:在保留最新值的同时跳过套接字提要

RxJS 5:在保留最新值的同时跳过套接字提要,rxjs,rxjs5,Rxjs,Rxjs5,我一直在努力想出一个针对特定情况的处方策略。我希望有人能给我指出正确的方向 基本上,我有一个基于布尔值的套接字提要,我想跳过它。当流跳过套接字时,我需要保留一个从套接字发送的最新值的运行缓冲区 一旦我不再跳过套接字事件,则向下推流跳过时发出的最后一个值,但仅在另一种情况下(bool),然后重新开始侦听套接字事件 所以基本上: 收听套接字提要 takeWhile(bool) 再次开始侦听时,在跳过时应用最后一个值 套接字,如果重新应用==true 没走多远,但这就是我所拥有的: Rx.Obse

我一直在努力想出一个针对特定情况的处方策略。我希望有人能给我指出正确的方向

基本上,我有一个基于布尔值的套接字提要,我想跳过它。当流跳过套接字时,我需要保留一个从套接字发送的最新值的运行缓冲区

一旦我不再跳过套接字事件,则向下推流跳过时发出的最后一个值,但仅在另一种情况下(bool),然后重新开始侦听套接字事件

所以基本上:

  • 收听套接字提要
  • takeWhile(bool)
  • 再次开始侦听时,在跳过时应用最后一个值 套接字,如果
    重新应用==true
没走多远,但这就是我所拥有的:

Rx.Observable.interval(1000)
.skipWhile(()=>isSkipping)
.bufferWhileSkipping??
.applySkippedValuesAfterSkipping(ifisReapply)??
.subscribe(val=>console.log(val));

也许
skipWhile
不是正确的方法,但却是唯一有意义的方法…

你可以像下面这样做(我假设你的
isSkipping
可以被观察到):

每次
isSkipping
发出一个值时,
窗口
操作符创建一个新的可观察对象,它只是重新发出所有内容或链接
。当skipping设置为
true时,takeLast(1)
操作符

上面的示例将以下输出打印到控制台:

0
1
2
3
last:9
10
11
12
13
last:16
17
18
19
0
1
2
3
last:9
10
11
12
13
last:16
17
18
19