Rxjs 可观察和如何控制结果速度
我正在寻找一个操作符,它可以帮助我调整从可观察到的物体发出的结果的速度,它看起来是这样的:Rxjs 可观察和如何控制结果速度,rxjs,observable,rxjs-pipeable-operators,Rxjs,Observable,Rxjs Pipeable Operators,我正在寻找一个操作符,它可以帮助我调整从可观察到的物体发出的结果的速度,它看起来是这样的: [--A-BC--D-E----------------] [--A----B----C----D----E----] 我尝试了AuditTime(),但它不会重播间隔之间发出的结果,它会执行以下操作: [--A-BC--D-E----------------] [--A----C----E--------------] 谢谢你的帮助 我认为这应该满足您的需要: const e1 = cold('-
[--A-BC--D-E----------------]
[--A----B----C----D----E----]
我尝试了AuditTime(),但它不会重播间隔之间发出的结果,它会执行以下操作:
[--A-BC--D-E----------------]
[--A----C----E--------------]
谢谢你的帮助 我认为这应该满足您的需要:
const e1 = cold('--A-BC--D-E----------------|');
const expected = '--A----B----C----D----E----|';
const source = e1.pipe(
concatMap(val => of(false).pipe(
delay(5, scheduler),
takeWhile(Boolean),
startWith(val),
)),
);
expectObservable(source).toBe(expected);
这里的诀窍是,我使用concatMap
总是等到上一个可观察对象完成。内部可观测对象发出该值,然后延迟其自身的完成,因此concatMap
强制执行两次发射之间的延迟
请看现场演示:我可以问一下,可以观察到的源是否长寿,也就是说,在最后一次发射通过管道后,它是否再次发射?这是否可能:[--A-BC--D-e--F-]?是的。也许我对观察者/观察者的知识不够好。。。也许这是你应该在观察者方面做的事情……好吧,不,这看起来像是管道的任务。我就是找不到任何内置的;)您可以看看这个:但我担心这会导致长寿命观测出现问题,因为zip操作符也会对计时器发射进行排队。