WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Angular · Advanced · question 47 of 100

How do you use Web Workers in Angular to offload intensive tasks to a separate thread?

📕 Buy this interview preparation book: 100 Angular questions & answers — PDF + EPUB for $5

Using Web Workers in Angular allows you to offload intensive tasks to separate threads, providing better performance and enabling your application to remain responsive even during heavy processing. Here’s a step-by-step guide on how to implement Web Workers in an Angular project:

1. Install Angular CLI and create a new project:

npm install -g @angular/cli
ng new my-worker-app
cd my-worker-app

2. Generate a new Web Worker:

ng generate web-worker my-worker

This generates two files: ‘my-worker.worker.ts‘ (the Web Worker itself) and ‘my-worker.worker.spec.ts‘ (the test file).

3. Implement your worker logic in ‘my-worker.worker.ts‘:

/// <reference lib="webworker" />

addEventListener('message', ({data}) => {
  const response = `Hello from the worker, you said: ${data}`;
  postMessage(response);
});

This worker listens for messages and sends a response back to the main thread.

4. Use the Web Worker in your Angular component:

First, import the Web Worker in your component:

import { Component } from '@angular/core';
import * as myWorker from './my-worker.worker';

Then, in your component class, use the worker:

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Using Web Worker in Angular';

  callWorker(input: string) {
    const worker = new myWorker.default();
    
    // Listen for messages from the worker
    worker.onmessage = ({data}) => {
      console.log('From worker', data);
    };
    
    // Send a message to the worker
    worker.postMessage(input);
  }
}

5. Add a simple UI in ‘app.component.html‘:

<input #input type="text" placeholder="Enter text">
<button (click)="callWorker(input.value)">Send to Web Worker</button>

Now, when you enter some text and click the "Send to Web Worker" button, the worker is called and sends a response back to your main thread. The browser console will log the response.

In conclusion, Web Workers in Angular help offload intensive tasks to separate threads, improving the performance and responsiveness of your application. The steps above detail how to generate a new worker, implement logic in the worker, and use the worker in your Angular component.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Angular interview — then scores it.
📞 Practice Angular — free 15 min
📕 Buy this interview preparation book: 100 Angular questions & answers — PDF + EPUB for $5

All 100 Angular questions · All topics