hidetran

Untitled

Jun 28th, 2018
1,009
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //WebWorker.js
  2. export default class WebWorker {
  3.     constructor(worker) {
  4.         let code = worker.toString();
  5.         code = code.substring(code.indexOf("{") + 1, code.lastIndexOf("}"));
  6.  
  7.         const blob = new Blob([code], { type: "application/javascript" });
  8.         return new Worker(URL.createObjectURL(blob));
  9.     }
  10. }
  11.  
  12. //AppWorker.js
  13. import axios from 'axios'
  14.  
  15. export default function AppWorker(args) {
  16.     // eslint-disable-next-line
  17.     let onmessage = function (e) {
  18.  
  19.         if (e.data.action === "join_network") {
  20.             axios.get('http://example.com/').then(function (response) {
  21.                     console.log(response);
  22.                 })
  23.                 .catch(function (error) {
  24.                     console.log(error);
  25.                 });
  26.         }
  27.     };
  28. }
  29.  
  30.  
  31.  
  32.  
  33. //App Component.js
  34. import WebWorker from '../../core/Workers/WebWorker';
  35. import AppWorker from '../../core/Workers/AppWorker';
  36.  
  37. componentDidMount() {
  38.             //Start worker for stuff here
  39.             const workerInstance = new WebWorker(AppWorker);
  40.             workerInstance.addEventListener("message", e => {
  41.                 console.log(e.data);
  42.             }, false);
  43.            
  44.             workerInstance.postMessage({
  45.                 action: "join_network"
  46.             });
  47. }
Advertisement
Add Comment
Please, Sign In to add comment