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 lines
In 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