developit / workerize

🏗️ Run a module in a Web Worker.
https://github.com/developit/workerize-loader
4.35k stars 91 forks source link

Handling no Worker support #15

Open Conrad2134 opened 6 years ago

Conrad2134 commented 6 years ago

🤔 Based on my first few seconds with workerize and workerize-loader:

In the situations where Workers aren't supported (IE9, Chrome w/ file:/// protocol, etc), the Worker construction fails and throws. This would force the user to try/catch the worker construction and then implement code to run in the main thread in that case (if necessary).

Rather that try/catching that and having to write that fall-back code, it could be handy if workerize could fail gracefully and just proxy through the original functions (wrapped in Promises to preserve the expected API).

Thoughts? I don't have a lot of experience with Workers / workerize, but it came to my mind so I thought I'd bring it up.

Edit: Forgot to mention that workerize and the loader look super cool so far, so great work! 👍

developit commented 6 years ago

Definitely interested in this, for workerize-loader as well. The Promise-wrapping idea is great, too - I hadn't thought of that.

Conrad2134 commented 6 years ago

👍 if I get some free time soon I might try to throw something together, then!