webworker-threads npm 라이브러리에 대한 정의 파일을 작성하려고합니다. 자신의 문서에서는 다음과 같이 새 작업자를 만들 수 있다고 말한다 :eval을 사용하여 타이글 타이핑 처리
let worker = new Worker(function() {
this.postMessage('worker created');
this.close();
});
트릭은 작업자를 구성하는 데 사용되는 함수 내부의 모든 것이 자기 변수를 통해 노동자 자체에 대한 액세스 권한을 가지고 있다는 것입니다. 이것은 코드에서 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'을 실제로 사용하지 않는다는 것을 알고 있습니까? 그것은 자신의 코드에서 자신의 eval 구현입니다 –
@NitzanTomer 여전히 비슷한 일을 수행합니다. 에 관계없이 내가 찾고 있던 답변은 Rem – watzon