webworker-threads npmライブラリの定義ファイルを書き込もうとしています。そのドキュメントでは、次のように新しいワーカーを作成できることを言う:evalでtypescriptタイピングを処理する
let worker = new Worker(function() {
this.postMessage('worker created');
this.close();
});
トリックは、労働者を構築するために使用され、その関数の内部ですべてが自己変数を介して労働者自身へのアクセス権を持っていることです。これはコード内でnew Worker()
に渡された引数が関数であるかどうかをチェックし、そうであればevalを呼び出すことによって実行されます。 hereを参照してください。
私はこれを私のタイピングでどのように複製するのかと思います。これまでのところ私はこれを持っているが、それは動作しません:活字体2.0では
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によって与えられました – watzon