如何在离子中使用web worker?

时间:2017-10-31 14:31:48

标签: typescript ionic-framework web-worker

我是离子和打字稿的新手,我需要使用网络工作者。 我找到了这个:  https://github.com/zlepper/typescript-webworker

但如果我像建议的那样创建3个文件,我会收到此错误:

Module not found: Error: Can't resolve 'file-loader'

我要改变别人的想法吗?

1 个答案:

答案 0 :(得分:0)

回答晚了,但希望能帮到其他人。

Angular 8 正式支持 Web Worker。

Angular official Doc

Ionic Example implementation

要将 Web Worker 添加到现有项目,请使用 Angular CLI ng generate 命令。

ng generate web-worker <location>

该命令执行以下操作。

  • 配置您的项目以使用网络工作者(如果尚未使用)。

  • 在src/app/app.worker.ts添加如下脚手架代码以接收 消息。

    <块引用>

    addEventListener('message', ({ data }) => { const response = "worker 对 ${data} 的响应"; postMessage(响应); });

  • 将以下脚手架代码添加到 src/app/app.component.ts 以使用 worker。

<块引用>
  if (typeof Worker !== 'undefined') {
  // Create a new
  const worker = new Worker('./app.worker', { type: 'module' });
  worker.onmessage = ({ data }) => {
    console.log(`page got message: ${data}`);
  };
  worker.postMessage('hello');
} else {
  // Web workers are not supported in this environment.
  // You should add a fallback so that your program still executes correctly.
}