#

API Docs for: 0.9.8
Show: Inherited Protected Private Deprecated

# Task Class

Extends Object
Defined in: `../monkeybars.js:547`

The simplest form of a MonkeyBars task. Once started the task executes all functionality located within the `performTask` function block. Set `logLevel` to see console logs during task execution.

## Constructor

### `Task`

(

- `attributes`

)

Defined in `../monkeybars.js:547`

#### Parameters:

- `attributes` Object

  List of attributes to apply to the task

#### Example:

            var task = new MonkeyBars.Task({
                name:"ExampleTask",
                performTask:function(){
                    this.complete();
                },
                onComplete:function(){
                    alert(this.name + " is complete!");
                }
            });

            task.start();

- Index
- Methods
- Properties

## Item Index

### Methods

- cancel
- complete
- fault
- onCancel
- onChange
- onComplete
- onFault
- onStart
- performTask
- start

### Properties

- concurrent
- currentIndex
- displayName
- logLevel
- product
- state
- timeout
- type
- worker

## Methods

### `cancel`

()

Defined in `../monkeybars.js:746`

Calling this method cancels the task. However it is up to the instance to handle the canceled state.

#### Example:

            var task = new MonkeyBars.Task({
                performTask:function(){
                    if(true){
                        this.cancel();
                    }
                }
            });

            task.start();

### `complete`

()

Defined in `../monkeybars.js:783`

Calling this method says that the tasks execution is now complete.

#### Example:

            var task = new MonkeyBars.Task({
                performTask:function(){
                    this.complete();
                }
            });

            task.start();

### `fault`

(

- `error`

)

Defined in `../monkeybars.js:819`

Calling this method to fault a task. If it is part of a group task this will also call the groups fault method passing the error up to the group.

#### Parameters:

- `error` String

  Message associated with the cause of the fault.

#### Example:

            var task = new MonkeyBars.Task({
                performTask:function(){
                    var a = "a";
                    if(a != "b") {
                        this.fault("a != b");
                    }
                }
            });

            task.start();

### `onCancel`

()

Defined in `../monkeybars.js:921`

Convenience method called when the task is canceled.

### `onChange`

(

- `state`
- `error`

)

Defined in `../monkeybars.js:858`

This method is called during the execution lifecycle of the task. It is intentionally left blank and is up to the instance to describe it functionality.

#### Parameters:

- `state` Integer

  The current state of the task

- `error` String

  Message describing error

#### Example:

            var task = new MonkeyBars.Task({
                performTask:function(){
                    this.complete();
                },
                onChange:function(state,error){
                    if(state == MonkeyBars.TaskStates.Completed){
                        alert("complete");
                    }
                }
            });

            task.start();

### `onComplete`

()

Defined in `../monkeybars.js:910`

Convenience method called when the task completes.

### `onFault`

(

- `error`

)

Defined in `../monkeybars.js:898`

Convenience method called when the task faults.

#### Parameters:

- `error` String

  Message describing error

### `onStart`

()

Defined in `../monkeybars.js:887`

Convenience method called when the task starts.

### `performTask`

()

Defined in `../monkeybars.js:932`

This method is required for simple tasks and will throw an exception if it is called and not overridden. If you overwrite this method on a task group then you need to make sure that you call the extended/implemented classes original prototype method (see the example below).

#### Example:

            var parallel = new MonkeyBars.ParallelTask({
                ...
                performTask:function(){
                    // custom functionality
                    MonkeyBars.ParallelTask.prototype.performTask.call(this);
                }
                ...
            })

### `start`

()

Defined in `../monkeybars.js:960`

Kicks off the execution of the task by calling the tasks `performTask` method. This method can only be run once on a task.

## Properties

### `concurrent`

Boolean

Defined in `../monkeybars.js:638`

Whether or not to run the task concurrently through Web Workers

Default: false

### `currentIndex`

Integer

Defined in `../monkeybars.js:1028`

The index of the subtasks that have completed execution.

Default: 0

### `displayName`

String

Defined in `../monkeybars.js:686`

Display name for task. Used in logging output.

### `logLevel`

Integer

Defined in `../monkeybars.js:720`

The default logging level for tasks

Default: 0

### `product`

Object

Defined in `../monkeybars.js:598`

Task product

Default: undefined

### `state`

Integer

Defined in `../monkeybars.js:706`

The current state of the task

Default: 0

### `timeout`

Integer

Defined in `../monkeybars.js:733`

Time in milliseconds in which a task will time out and throw a fault

Default: undefined

### `type`

String

Defined in `../monkeybars.js:624`

The kind of task

### `worker`

Object

Defined in `../monkeybars.js:651`

This object can either be simply a reference to a custom WorkerTask extention's constructor. Or it can be an object with a constructor key/value pair. If it is the latter then you also have the option of passing a handler function that will be run on the `onMessage` handler of the Worker itself.

Default: undefined

#### Example:

            var task = new MonkeyBars.Task({
                ...
                worker:{
                    constructor:CustomWorker,
                    handler:function(e){
                        // called when a postMessage is posted from the task
                    }
                },
                ...
            });

            var task = new MonkeyBars.Task({
                ...
                worker:CustomWorker,
                ...
            });