CurrentAction
- class Util.CurrentAction()
This class encapsulates execution of a single action at a time. You set the action to execute, which waits on the currently executing action and kills any pending ones.
This class can be thought of as an
Action
queue that limits to 1 action running at a time, and if any new actions are pushed into it, the queue’s pending actions are cleared. (The actively running action will not get cancelled.)
Constructors
Methods
Constructors
- CurrentAction.constructor(suppressFailures)
- Arguments
suppressFailures (
boolean()
) – Controls whether or not thrown action errors causewaitForIdle
to throw.
Creates a new
CurrentAction
.- Return type
CurrentAction
Methods
clear
- CurrentAction.clear()
Clears and discards any pending actions. If an action is currently being executed, it remains unaffected by this.
- Return type
void
isIdle
- CurrentAction.isIdle()
Queries the idle state of this object.
- Returns
true
if there are no executing actions andfalse
otherwise.- Return type
boolean
set
- CurrentAction.set(action)
- Arguments
action (
ActionLike()
) – None
Sets the action to execute to the one supplied.
If this object is idle, then the action is immediately executed, and this object is no longer as long as the action is running.
Otherwise if the object is not idle, then action becomes pended and will execute after the current one finishes. If an action is already pended, then the prior pending action is replaced by the newly supplied action and is discarded.
- Return type
void
waitForIdle
- CurrentAction.waitForIdle()
Creates
Promise
that can be used to wait for this object to become idle.If this object was created with
suppressFailures
, then the returnedPromise
never throws. Otherwise action failures (fromthis.set
) propagate to the returnedPromise
.- Returns
The idle
Promise
.- Return type
Promise <void>