async-task
async-task copied to clipboard
Execute tasks asynchronous tasks on web Worker without seperate files.
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-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
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(() => '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
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:
