JSFiddle - React, Tailwind, and code Playground

by luizz

JavaScript

//worker.js
    function log(args){
        self.postMessage({
            'data':args, 
            'callback':'undefined'
        });
    }

    self.addEventListener('message', function(e) {
    
    var data = e.data;
    switch (data.cmd) {
        case 'menu':
            
            stdReturn = function(menu_json){
                postMessage({
                    'data':montarMenu(menu_json), 
                    'callback':data.callback
                });
            };
            
            get('/ajax/menumod', stdReturn);

            break;
        case 'log':
            self.postMessage({
                'data':'LogDoWork', 
                'callback':0
            });
            break;
        case 'stop':
            self.postMessage('WORKER STOPPED: ' + data.msg + '. (buttons will no longer work)');
            self.close(); //sair o worker.
            break;
        default:
            self.postMessage('Unknown command: ' + data.msg);
    };
  
}, false);

log('Iniciado Work');


//js usnado
//Worker by Luizz
Worker.prototype.cmdCall = new Array();
Worker.prototype.cmd = function(cmd, callback){
    this.postMessage({'cmd': cmd, 'callback':this.cmdCall.length});
    this.cmdCall[this.cmdCall.length] = callback;
}

worker = new Worker('worker.js');    

//Adiciona o cmd:menu, call:montarMenu
                    worker.cmd('menu', montarMenu);