我创建了一个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对象。我怎么做到的? (我正在使用打字稿,但我相信这是一个javascript问题。)
答案 0 :(得分:1)
只是做:
this.worker.onmessage = this.messageHandler.bind(this);
处理程序中的this
值将指向您的WorkerApi
实例。