Reduces the boilerplate in setting up a request/response pattern between your main thread and a web worker
Here's a trivial example of calculating the nth fibonacci number. There's some
code you can browserify in the
example folder too.
// index.jsvar fibonacci = require'./setup'fibonacci80if err throw errconsole.logresult // 23416728348467684
// setup.jsvar parent = require'worker-query/parent'var worker = require'webworkify'moduleexports = parentworkerrequire'./fibonacci'
// fibonacci.jsmoduleexports = childvar a = 0var b = 1var cfor var i = 1; i < data; i += 1c = a + ba = bb = cdonenull c
Creates and returns a worker template: calling that function on a clean worker
will set up everything you need on the worker's end.
request is a function
called every time data is requested with the
data supplied and a
callback you should call with the result.
Takes a fresh
worker and sets up everything you need on the parent script's
end to request data from it. Returns a function you can use to request data.
data to the worker - when it's ready, it should return the
callback. Optionally, you can pass through an array of transferable
objects as a third argument for better performance.