【发布时间】:2017-01-19 05:59:58
【问题描述】:
我正在尝试为webworker-threads npm 库编写定义文件。在他们的文档中,它说您可以按如下方式创建一个新工作人员:
let worker = new Worker(function() {
this.postMessage('worker created');
this.close();
});
诀窍在于,该函数内部用于构造 worker 的所有内容都可以通过 self 变量访问 worker 本身。这在他们的代码中通过检查传递给new Worker() 的参数是否是一个函数来完成,如果是,则在其上调用 eval。见here。
我想知道如何用我的打字来复制它。到目前为止,我有这个,但它不起作用:
export class Worker {
public onmessage: (event: any) => any;
public thread: Thread;
constructor(fn?: Worker | string); // <= Doesn't work because technically the function passed in isn't a worker, it just accesses the new Worker as if it were.
public postMessage(data: any): void;
public terminate(): void;
public addEventListener(type: string, cb: (event: any) => any): void;
public removeEventListener(type: string): void;
}
【问题讨论】:
-
你想做什么?您想模仿他们正在做什么或试图使用它吗?既然他们已经为您提供了
Worker类,为什么您需要创建自己的类? -
您知道他们并没有真正使用
eval对吗?这是他们自己在 C 代码中实现的 eval -
@NitzanTomer 它仍然完成了类似的事情。不管我正在寻找的答案是由 Rem 给出的
标签: node.js typescript typescript-typings