Interval
func (input *Channel[T]) Interval(interval func(value T) time.Duration) *Channel[T]
Interval transparently passes all input values to the output channel, but a time interval is awaited after each element before sending another one. No value is sent to the output while that interval is active.
This operator is prone to generating backpressure, so use it with care, and consider adding a Buffer before it.
Example
output := input.Interval(4*time.Millisecond)