AngularでWeb Workerを作成する方法


  1. Web Workerのセットアップ: まず、AngularプロジェクトにWeb Workerを追加する必要があります。以下のコマンドを使用して、Angular CLIを介してWeb Workerのサポートを追加します。
ng add @angular/platform-webworker
  1. Web Workerの作成: Web Workerを作成するには、Workerクラスを使用します。以下のコードは、Web Workerを作成し、メッセージの送受信を行う簡単な例です。
// app.worker.ts
self.addEventListener('message', ({ data }) => {
  const result = data * 2;
  self.postMessage(result);
});
  1. Web Workerの利用: Web WorkerをAngularコンポーネントで利用するには、Workerクラスのインスタンスを作成し、メッセージの送受信を行います。以下のコードは、AngularコンポーネントでWeb Workerを使用する例です。
// app.component.ts
import { Component } from '@angular/core';
import { Worker } from 'worker_threads';
@Component({
  selector: 'app-root',
  template: `
    <button (click)="calculate()">Calculate</button>
    <p>Result: {{ result }}</p>
  `
})
export class AppComponent {
  result: number;
  calculate() {
    const worker = new Worker('./app.worker', { type: 'module' });
    worker.addEventListener('message', ({ data }) => {
      this.result = data;
      worker.terminate();
    });
    worker.postMessage(5);
  }
}

上記の例では、ボタンをクリックするとWeb Workerが起動し、計算結果が表示されます。

これで、AngularでWeb Workerを作成し利用する方法を学びました。Web Workerを使用することで、アプリケーションのパフォーマンスを向上させ、ユーザーエクスペリエンスを向上させることができます。