Advertisement
Guest User

Untitled

a guest
May 30th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. var cloneAsync = (function() {
  2. var queue = [];
  3.  
  4. var worker = new Worker(URL.createObjectURL(new Blob(['onmessage=function(e){postMessage(e.data)}'], {
  5. 'type': 'text/javascript'
  6. })));
  7.  
  8. worker.addEventListener('message', function listener(e) {
  9. var callback = queue.shift().callback;
  10. if (queue.length) {
  11. this.postMessage(queue[0].value);
  12. }
  13. callback(e.data);
  14. });
  15.  
  16. return function(value, callback) {
  17. if (!queue.length) {
  18. worker.postMessage(value);
  19. }
  20. queue.push({ 'value': value, 'callback': callback });
  21. };
  22. }());
  23.  
  24. var object = { 'a': { 'b': [1, { 'c': 2 }] } };
  25.  
  26. cloneAsync(object, function(result) {
  27. console.log(result, object === result);
  28. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement