Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!doctype html>
- <meta charset="utf-8">
- <title></title>
- <script>
- var outerWorker = new Worker('a.js');
- /*
- Code von a.js:
- this.onmessage = function(evt){
- var port = evt.data.port;
- port.onmessage = this.postMessage.bind(this);
- port.postMessage(23);
- };
- */
- var innerWorker = new Worker('b.js');
- /*
- Code von b.js:
- this.onmessage = function(evt){
- if(evt.data === 23){
- this.postMessage(42);
- }
- };
- */
- function createProxy(worker){
- var channel = new MessageChannel();
- var localPort = channel.port1;
- var remotePort = channel.port2;
- localPort.start();
- remotePort.start();
- localPort.onmessage = function(evt){
- worker.postMessage(evt.data);
- };
- worker.onmessage = function(evt){
- localPort.postMessage(evt.data);
- }
- return remotePort;
- }
- var proxy = createProxy(innerWorker);
- outerWorker.postMessage({
- port: proxy
- }, [proxy])
- innerWorker.onmessage = function(evt){
- window.alert(evt.data); // > 42
- };
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement