如何解决Web Worker,它在angular应用程序中使用模块中的代码
我有一个角度应用程序,我需要使用网络工作者来执行一些代码,但是代码依赖于某个模块。
工作程序是这样初始化的,如果不需要外部模块,它将正常工作
var worker = new Worker('data:text/javascript;base64,' + btoa('self.postMessage((' + String(code) + '\n)());'));
其中code
是函数引用。
那么我该如何做呢?最好不要实时加载模块。
解决方法
您必须从工作人员定义一个模块(文件),然后导入所需的外部模块。 像这样:
outermodule.js:
var value = "my value";
module.exports = value;
worker.js
var value = require('./outermodule');
addEventListener('message',({ data }) => {
const response = `worker response: ${value}` ;
postMessage(response);
});
主线程: index.js
const worker = new Worker('./worker',{ type: 'module' });
worker.onmessage = ({ data }) => {
console.log(`got message from worker: ${data}`);
};
worker.postMessage('hello');
阅读材料:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。