Class: ActionQueue

THING.ActionQueue(param)

ActionQueue The action queue.

Constructor

new ActionQueue(param)

The action queue what can process multiple actions.
Parameters:
Name Type Description
param Object The initial parameters.
Source:
Example
let actionQueue = new THING.ActionQueue({ name: 'MyActionQueue' });

Members

actions :Array.<ActionProcessor>

Get actions.
Type:
Source:
Example
// Print action queue's (actions/processors)
console.log(actionQueue.actions);

name :String

Get/Set name.
Type:
  • String
Source:
Example
// Print action queue's name
console.log(actionQueue.name);

Methods

add(processor, name, priority)

Add action.
Parameters:
Name Type Default Description
processor Array.<ActionProcessor> | ActionProcessor The action processor(s).
name String The action name(only works for single processor mode).
priority Number 0 The action priority value(default is 0, higher value indicates higher priority).
Source:
Example
// Create action processor
class ActionProcessor {
	onStop() {
	}

	onRun(options) {
	}
};

actionQueue.add(new ActionProcessor(), 'FirstActionProcessor', 1000);

clear()

Clear all groups and result.
Source:
Example
let actionQueue = new THING.ActionQueue({ name: 'MyActionQueue' });
class ActionProcessor {
		onStop() {
		}
		onRun(options) {
		}
};
actionQueue.add(new ActionProcessor(), 'FirstActionProcessor', 1000);
actionQueue.clear();
// @expect(actionQueue.actions.length == 1);

getByName(name) → {ActionProcessor}

Get action by name.
Parameters:
Name Type Description
name String The action name.
Source:
Returns:
Type
ActionProcessor
Example
let actionProcessor = actionQueue.getByName('FirstActionProcessor');

getByType(type) → {ActionProcessor}

Get action by type.
Parameters:
Name Type Description
type * The action type.
Source:
Returns:
Type
ActionProcessor
Example
// ActionProcess is class type(class ActionProcessor)
let actionProcessor = actionQueue.getByType(ActionProcessor);

removeByName(name)

Remove action by name.
Parameters:
Name Type Description
name String The action name.
Source:
Example
actionQueue.removeByName('FirstActionProcessor');

removeByType(type)

Remove action by type.
Parameters:
Name Type Description
type * The action type.
Source:
Example
// ActionProcess is class type(class ActionProcessor)
actionQueue.removeByType(ActionProcessor);

traverseByName(name, callback)

Traverse by name.
Parameters:
Name Type Description
name String The action name.
callback OnTraverseActionProcessorCallback The callback function.
Source:
Example
actionQueue.traverseByName('PlayAction', (actionProcessor) => {
	console.log(actionProcessor);
});

traverseByType(type, callback)

Traverse by type.
Parameters:
Name Type Description
type * The action type.
callback OnTraverseActionProcessorCallback The callback function.
Source:
Example
// ActionProcess is class type(class ActionProcessor)
actionQueue.traverseByType(ActionProcess, (actionProcessor) => {
	console.log(actionProcessor);
});