pub fn signal_throttled<S, T>(
value: S,
ms: impl Into<Signal<f64>> + 'static,
) -> Signal<T, SyncStorage>Expand description
Throttle changing of a Signal value.
Use *_local variants for values that are not Send + Sync.
§Demo
§Usage
let (input, set_input) = signal("");
let throttled: Signal<&'static str> = signal_throttled(input, 1000.0);
let (input_local, set_input_local) = signal_local(RefCell::new(0));
let throttled_local: Signal<RefCell<i32>, _> = signal_throttled_local(input_local, 1000.0);§Options
The usual throttle options leading and trailing are available.
let (input, set_input) = signal("");
let throttled: Signal<&'static str> = signal_throttled_with_options(
input,
1000.0,
ThrottleOptions::default().leading(false).trailing(true)
);
let (input_local, set_input_local) = signal_local(RefCell::new(0));
let throttled_local: Signal<RefCell<i32>, _> = signal_throttled_local_with_options(
input_local,
1000.0,
ThrottleOptions::default().leading(false).trailing(true)
);§Recommended Reading
§Server-Side Rendering
Make sure you follow the instructions in Server-Side Rendering.
Internally this uses setTimeout which is not supported on the server. So usually
a throttled signal on the server will simply be ignored.