我创建一个 web worker 如下:
export class WorkerApi {
private worker:Worker;
constructor() {
this.worker = new Worker("web-worker.js");
this.worker.onmessage = this.messageHandler;
}
private messageHandler (e) {
// need "this" for the instantiated WorkerApi object here
// ...
}
我遇到的问题是当
messageHandler
被调用时,this
是Worker对象。我需要访问我的 WorkerApi
对象。我怎么得到它? (我正在使用 TypeScript,但我认为这是一个 JavaScript 问题。)
就做:
this.worker.onmessage = this.messageHandler.bind(this);
处理程序中的
this
值将指向您的 WorkerApi
实例。