CurrentAction

class Communicator.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


Constructors

constructor

Communicator.Util.CurrentAction.constructor(suppressFailures)

Creates a new CurrentAction.

Arguments
  • suppressFailures (boolean()) –

Return type

Communicator.Util.CurrentAction

Methods

clear

Communicator.Util.CurrentAction.clear()

Clears and discards any pending actions. If an action is currently being executed, it remains unaffected by this.

Return type

void

isIdle

Communicator.Util.CurrentAction.isIdle()

Queries the idle state of this object.

Return type

boolean

Returns

true if there are no executing actions and false otherwise.

set

Communicator.Util.CurrentAction.set(action)

Sets the action to execute to the one supplied.

Arguments
  • action (Communicator.Util.ActionLike()) –

Return type

void

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.

waitForIdle

Communicator.Util.CurrentAction.waitForIdle()

Creates Promise that can be used to wait for this object to become idle.

Return type

Promise[void]

Returns

The idle Promise.

If this object was created with suppressFailures, then the returned Promise never throws. Otherwise action failures (from this.set) propagate to the returned Promise.