andywer/threads.js

Should we support passing functions to workers?

Open

#145 opened on Aug 8, 2019

 (25 comments) (8 reactions) (0 assignees)TypeScript (173 forks)github user discovery
discussionhelp wanted

Repository metrics

Stars
 (3,531 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

In v0.x we built the library around the idea of passing functions to the worker that would be serialized, passed as a message, deserialized and then executed in the worker.

This approach has some subtle, yet strong limitations, though. That's why v1.0 does not support passing functions anymore, in order to prevent people from running into those not-always-obvious issues.

Maybe there are use cases where one really needs to be able to pass functions to workers. Then we need to make sure, though, that the user is aware of the passed function's limitations:

  • Cannot access any variable declared outside the functions scope
  • Cannot import or require() other modules in the function (at least not in the browser when bundling)

In response to #141, #144.

Contributor guide