티스토리 뷰

728x90
반응형

라이브러리


yarn add worker-loader

worker 관련 라이브러리 설치

 

 

worker-loader 파일 설정


custom.d.ts

declare module "worker-loader!*" {
    class WebpackWorker extends Worker {
      constructor();
    }
  
    export default WebpackWorker;
}

 

 

worker 파일 작성


TestWorker.js

/* eslint-disable no-unused-vars */
/* eslint-disable no-restricted-globals */
const ctx: Worker = self as any;

// Respond to message from parent thread
ctx.addEventListener("message", async (event) => {
  await sleep();

  const { data } = event;

  axios({ url: data.url, responseType: 'arraybuffer', })
  .then(res => {

      const path = node_path.join('/Users', `./downloads/`, `${data.index}.png`);
      const writable = node_fs.createWriteStream(path);
          
      writable.write(new Uint8Array(res.data));

      ctx.postMessage(data.index);
  })
  .catch(err => {
  	  console.error('err: ', err);
  })

});

 

worker 사용


import Worker from "worker-loader!./TestWorker";

const worker = new Worker();

worker.onmessage = (e) => {

    if(true){
        worker.terminate();
    }
}

worker.postMessage({ 
    test: 'test'
});
728x90
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함