Q()

Class representing Queue.

new Q()

Create queue manager.

Extends

  • EventEmitter

Members

private q :Array.<Task>

Tasks queue.

Methods

async add(taskFn) → {Promise}

Add task to queue.

Parameters:
Name Type Description
taskFn function

Task executor.

Throws:

Error if no valid function provided.

Returns:
Promise -

Task result.

async addBunch(…taskFns) → {Promise}

Add multiple tasks to queue. This will be resolved when last task in a list will be resolved. In case if any task failed this will be rejected.

Parameters:
Name Type Attributes Description
taskFns function <repeatable>

Task executors.

Throws:

Error if no valid function provided.

Returns:
Promise -

Tasks results.

hasRunningTasks() → {boolean}

Check whatever queue has running tasks.

Returns:
boolean

private onNewTask(task) → {boolean}

New task handler.

Parameters:
Name Type Description
task Task

Task.

Returns:
boolean -

Whatever if task has been started immediately.

private onTaskDone(task) → {boolean}

Remove task from queue and start next in queue.

Parameters:
Name Type Description
task Task

Ended task.

Returns:
boolean -

Whatever any another task has run.

private pushTask(task) → {Array.<Task, Promise>}

Internal method to push task to queue.

Parameters:
Name Type Description
task Task | function

Task or task function to add.

Returns:
Array.<Task, Promise> -

Task instance and resolver Promise.

private tryToRunTask(taskopt) → {boolean}

Try to run task if there's no already running tasks.

Parameters:
Name Type Attributes Default Description
task Task <optional>
this.q[0]

Task to run. Will we set to first in queue if not specified.

Returns:
boolean -

Whatever if any task has ran.