UNPKG

@loaders.gl/core

Version:

Framework-independent loaders for 3D graphics formats

47 lines (40 loc) 956 B
import { getWorkerURL, getTransferList } from './worker-utils'; let count = 0; function defaultOnMessage({ data, resolve }) { resolve(data); } export default class WorkerThread { constructor({ source, name = "web-worker-".concat(count++), onMessage }) { const url = getWorkerURL(source); this.worker = new Worker(url, { name }); this.name = name; this.onMessage = onMessage || defaultOnMessage; } async process(data) { return new Promise((resolve, reject) => { this.worker.onmessage = event => this.onMessage({ worker: this.worker, data: event.data, resolve, reject }); this.worker.onerror = error => reject(error); const transferList = getTransferList(data); this.worker.postMessage(data, transferList); }); } destroy() { this.worker.terminate(); this.worker = null; } } //# sourceMappingURL=worker-thread.js.map