CallbackLimiter class
Runs the callback as soon as possible and limits the calling frequency to one call per duration.
Use case: Preventing a user from making numerous expensive requests (e.g. by pressing a button repeatedly withing a short timespan).
- Inheritance
-
- Object
- CallbackController
- CallbackLimiter
Constructors
- CallbackLimiter({required Duration duration})
Properties
- current ↔ TimeStampedCallbackControllerState
-
The current state.
getter/setter pairinherited
- duration → Duration
-
After the event delaying is added the stream
will wait for at least duration before the event
CallbackControllerState.ready is added.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasTimedOut → bool
-
Returns
trueif the last state added to stream was delaying and DateTime.now is after current.dateTimeStamp plus duration.no setterinherited - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
stream
→ Stream<
CallbackControllerState> -
A stream with events of type CallbackControllerState.
no setterinherited
Methods
-
close(
) → Future -
Closes the controller such that no further events will be added to
stream.
Any unfinished timers will be cancelled.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
run(
FutureOr< void> callback()) → void -
Runs
callbackand adds events to stream.override -
runAsync(
FutureOr< void> callback()) → Future<void> -
Runs
callbackand adds events to stream using the following sequence:override -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited