parent
a1a75f3c5e
commit
f63a57a147
@ -0,0 +1,28 @@
|
|||||||
|
import { Draw } from '../draw/Draw'
|
||||||
|
|
||||||
|
export class WorkerManager {
|
||||||
|
|
||||||
|
private draw: Draw
|
||||||
|
private wordCountWorker: Worker
|
||||||
|
|
||||||
|
constructor(draw: Draw) {
|
||||||
|
this.draw = draw
|
||||||
|
this.wordCountWorker = new Worker(new URL('./works/wordCount.ts', import.meta.url))
|
||||||
|
}
|
||||||
|
|
||||||
|
public getWordCount(): Promise<number> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
this.wordCountWorker.onmessage = (evt) => {
|
||||||
|
resolve(evt.data)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.wordCountWorker.onerror = (evt) => {
|
||||||
|
reject(evt)
|
||||||
|
}
|
||||||
|
|
||||||
|
const elementList = this.draw.getOriginalElementList()
|
||||||
|
this.wordCountWorker.postMessage(elementList)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
import { IElement } from '../../../interface/Element'
|
||||||
|
|
||||||
|
onmessage = (evt) => {
|
||||||
|
const elementList = <IElement[]>evt.data
|
||||||
|
// TODO:
|
||||||
|
postMessage(elementList.length)
|
||||||
|
}
|
||||||
Loading…
Reference in new issue