Skip to content

Instantly share code, notes, and snippets.

View westwick's full-sized avatar
👀
hi

Andrew Westwick westwick

👀
hi
View GitHub Profile
export const SomeComponent = ({someId}) => {
const [searchWorker, setSearchWorker] = useState();
useEffect(() => {
const searchWorkerInstance = new SearchWorker();
setSearchWorker(searchWorkerInstance);
searchWorkerInstance.onmessage(...);
return () => {
searchWorkerInstance.terminate();
export const SomeComponent = (props) => {
const [searchWorker, setSearchWorker] = useState();
useEffect(() => {
const searchWorkerInstance = new SearchWorker();
setSearchWorker(searchWorkerInstance);
// subscribe to worker messages
searchWorkerInstance.onmessage(...);
// do something with the worker on component init
export const SomeComponent = (props) => {
const [searchWorker, setSearchWorker] = useState();
useEffect(() => {
setSearchWorker(new SearchWorker());
// subscribe to worker messages
searchWorker.onmessage(...);
// do something with the worker on component init
searchWorker.postMessage(...);
}, []);
export const SomeComponent = (props) => {
const [searchWorker, setSearchWorker] = useState(new SearchWorker());
useEffect(() => {
// subscribe to worker messages
searchWorker.onmessage(...);
// do something with the worker on component init
searchWorker.postMessage(...);
}, []);
}
const searchWorker = new SearchWorker();
export const SomeComponent = (props) => {
useEffect(() => {
// subscribe to worker messages
searchWorker.onmessage(...);
// do something with the worker on component init
searchWorker.postMessage(...);
}, []);
}
@westwick
westwick / example.worker.js
Created February 5, 2021 16:40
webworker example
// example.worker.js
onmessage = e => {
const data = JSON.parse(e.data);
switch (data.type) {
case 'init':
// set up data or something
break;
case 'filter':
// some long running task possibly
const result = doSomethingAsyncOrWhatever(...);

Keybase proof

I hereby claim:

  • I am westwick on github.
  • I am westwick (https://keybase.io/westwick) on keybase.
  • I have a public key ASDSdQxpfv_9LTBF7A0eCbXZbz7oi7nttKEp4HSMK1gUhQo

To claim this, I am signing this object: