A Process Queue maintains three internal lists.
The pending
list is a selection of items which are due to be made 'active' in the next update.
The active
list is a selection of items which are considered active and should be updated.
The destroy
list is a selection of items that were active and are awaiting being destroyed in the next update.
When new items are added to a Process Queue they are put in the pending list, rather than being added immediately the active list. Equally, items that are removed are put into the destroy list, rather than being destroyed immediately. This allows the Process Queue to carefully process each item at a specific, fixed time, rather than at the time of the request from the API.
new ProcessQueue()
If true
only unique objects will be allowed in the queue.
The number of entries in the active list.
Adds a new item to the Process Queue.
The item is added to the pending list and made active in the next update.
name | type | description |
---|---|---|
item | * |
The item to add to the queue. |
The item that was added.
Add a listener for a given event.
name | type | arguments | Default | description |
---|---|---|---|---|
event | string | symbol |
The event name. |
||
fn | function |
The listener function. |
||
context | * | <optional> | this |
The context to invoke the listener with. |
this
.
Immediately destroys this process queue, clearing all of its internal arrays and resetting the process totals.
Calls each of the listeners registered for a given event.
name | type | arguments | description |
---|---|---|---|
event | string | symbol |
The event name. |
|
args | * | <optional> |
Additional arguments that will be passed to the event handler. |
true
if the event had listeners, else false
.
Return an array listing the events for which the emitter has registered listeners.
Returns the current list of active items.
This method returns a reference to the active list array, not a copy of it. Therefore, be careful to not modify this array outside of the ProcessQueue.
A list of active items.
Checks the given item to see if it is already active within this Process Queue.
name | type | description |
---|---|---|
item | * |
The item to check. |
true
if the item is active, otherwise false
.
Checks the given item to see if it is already pending destruction from this Process Queue.
name | type | description |
---|---|---|
item | * |
The item to check. |
true
if the item is pending destruction, otherwise false
.
Checks the given item to see if it is already pending addition to this Process Queue.
name | type | description |
---|---|---|
item | * |
The item to check. |
true
if the item is pending insertion, otherwise false
.
Return the number of listeners listening to a given event.
name | type | description |
---|---|---|
event | string | symbol |
The event name. |
The number of listeners.
Return the listeners registered for a given event.
name | type | description |
---|---|---|
event | string | symbol |
The event name. |
The registered listeners.
Remove the listeners of a given event.
name | type | arguments | description |
---|---|---|---|
event | string | symbol |
The event name. |
|
fn | function | <optional> |
Only remove the listeners that match this function. |
context | * | <optional> |
Only remove the listeners that have this context. |
once | boolean | <optional> |
Only remove one-time listeners. |
this
.
Add a listener for a given event.
name | type | arguments | Default | description |
---|---|---|---|---|
event | string | symbol |
The event name. |
||
fn | function |
The listener function. |
||
context | * | <optional> | this |
The context to invoke the listener with. |
this
.
Add a one-time listener for a given event.
name | type | arguments | Default | description |
---|---|---|---|---|
event | string | symbol |
The event name. |
||
fn | function |
The listener function. |
||
context | * | <optional> | this |
The context to invoke the listener with. |
this
.
Removes an item from the Process Queue.
The item is added to the 'destroy' list and is fully removed in the next update.
name | type | description |
---|---|---|
item | * |
The item to be removed from the queue. |
The item that was removed.
Removes all active items from this Process Queue.
All the items are marked as 'pending destroy' and fully removed in the next update.
This Process Queue object.
Remove all listeners, or those of the specified event.
name | type | arguments | description |
---|---|---|---|
event | string | symbol | <optional> |
The event name. |
this
.
Remove the listeners of a given event.
name | type | arguments | description |
---|---|---|---|
event | string | symbol |
The event name. |
|
fn | function | <optional> |
Only remove the listeners that match this function. |
context | * | <optional> |
Only remove the listeners that have this context. |
once | boolean | <optional> |
Only remove one-time listeners. |
this
.
Removes all listeners.
Update this queue. First it will process any items awaiting destruction, and remove them.
Then it will check to see if there are any items pending insertion, and move them to an active state. Finally, it will return a list of active items for further processing.
A list of active items.