Я думаю, что это должно делать то, что вам нужно:
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
обеспечивает задержку между двумя выбросами.
Посмотреть демо: https://stackblitz.com/edit/rxjs6-test-scheduler?file=index.ts