Search code examples
javascriptrequirejsweb-workerjs-amd

Can I load AMD modules inside a webworker?


I am trying out webworkers for making my computationally heavy Javascript truly parallel. However, I have a problem in that all of my javascript files are AMD modules. Can I use requirejs inside of my webworker? How?


Solution

  • In Web workers, other scripts can be loaded using the importScripts function. The source code of RequireJS shows that Web workers are also supported:

    // Line 23:
    isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
    // Line 1877:
    } else if (isWebWorker) {
        //In a web worker, use importScripts. This is not a very
        //efficient use of importScripts, importScripts will block until
        //its script is downloaded and evaluated. However, if web workers
        //are in play, the expectation that a build has been done so that
        //only one script needs to be loaded anyway. This may need to be
        //reevaluated if other use cases become common.
        importScripts(url);