我正在寻找一个运算符来帮助我调整可观察值发出的结果,它看起来像这样:
[--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
始终等到前一个 Observable 完成。内部 Observable 发出值,然后推迟其自身的完成,从而concatMap
强制两次发射之间的延迟。
观看现场演示:https://stackblitz.com/edit/rxjs6-test-scheduler?file=index.ts https://stackblitz.com/edit/rxjs6-test-scheduler?file=index.ts
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)