rxjs: emit source values with every "tick" of another observable
00:16 05 Feb 2026

My problem seems quite simple: I have an Observable source and I want to delay emissions (no skip) as such: Start with first emission, than for every next emission, wait until another Observable tick has emitted once.

This should do it:

source.pipe(
  concatMap((value) =>
    tick.pipe(
      first(),
      ignoreElements(),
      startWith(actions),
    ),
  ),
)

But I have the feeling (as so often when working with rxjs) that there is a much simpler solution out there, although that I feel that I have tried every operator I could think of (audit, delay, interval, sample, ...) sample kind of comes closest, but it is skipping emissions. Also the problem reminds my strongly of Schedulers: If one could make a Scheduler from an Observable...

Maybe I am missing something.

javascript typescript rxjs