AsyncTask Travis Code Climate

Execute tasks asynchronous tasks without seperate files. In browsers without Worker support it fallbacks to iframe.

In Nodejs it spawns a process using child_process.

Install

npm install async-task

Also support bower

bower install async-task

Usage

var AsyncTask = require( 'async-task' )

var task = new AsyncTask((a, b) => a + b)

task.execute(1, 2)
  .then(function( result ) {
    result === 3
  })
  .catch( handleException )

API

AsyncTask( doInBackground, options )

Creates a new AsyncTask

options

asyncTask.execute( args... ):Promise

Execute the doInBackground function with supplied args.

Sharing worker example
var AsyncTask = require( 'async-task' )
var BackgroundWorker = require( 'background-worker' )

var worker = new BackgroundWorker({})

var taskA = new AsyncTask(() => 'a', {worker})

var taskB = new AsyncTask(() => 'b', {worker})


Promise.all([
  taskA.execute(),
  taskB.execute()
]).then(function(result) {
  result == [ 'a', 'b' ]
  worker.terminate()
})

Test

npm run-script test

Roadmap

In the wild

If your using it in your very cool project please drop me a note on jornandretangen àt gmail.com

Partially made, with <3 at:

Foo