The delayWhen function in the rxjs library allows you to delay the emissions of a stream based on the emissions of another stream. It takes a function that returns an observable, and delays the emissions of the source stream until the observable returned from the function emits a value.
Here's an example of how to use delayWhen:
index.tsx253 chars10 linesIn this example, we create a stream clicks$ that emits whenever the user clicks anywhere on the document. We then create an interval stream that emits a value every second. With delayWhen, we delay the emissions of the interval stream until a click occurs, effectively resetting the interval timer.
Whenever the user clicks, the interval starts over and waits another second before emitting a value.
Note that delayWhen takes a function that returns an observable. In this example, we pass in () => clicks$, which returns the clicks$ stream itself. This means that whenever a click occurs on the clicks$ stream, the delayed emissions from the delayedInterval$ stream will be triggered.
gistlibby LogSnag