async-task
v0.4.2
Published
Run a AsyncTask using a web worker or child_process.
Readme
AsyncTask 
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-taskAlso support bower
bower install async-taskUsage
var AsyncTask = require( 'async-task' )
var task = new AsyncTask({
doInBackground: (a, b) -> a + b
})
task.execute(1, 2)
.then(function( result ) {
result === 3
})
.catch( handleException )Shorthand
var task = new AsyncTask( (a, b) -> a + b, options )API
AsyncTask( doInBackground, options )
Creates a new AsyncTask
options
options.doInBackgroundThe work(function) to be done in the worker if the first argument isnt the task.options.keepAliveKeep worker alive so.executecan be called multiple times.options.workerSupply worker if you want to share worker between tasks. NB!: termination of worker is left to the user
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({
worker: worker,
doInBackground: () -> 'a'
})
var taskB = new AsyncTask({
worker: worker,
doInBackground: () -> 'b'
})
Promise.all([
taskA.execute(),
taskB.execute()
]).then(function(result) {
result == [ 'a', 'b' ]
worker.terminate()
})Test
npm run-script test
Roadmap
doInBackgroundcan return a promise or maybe even agenerator*so you can iterate overasyncTask.execute
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:

