Advertisement
Guest User

teste.html

a guest
Apr 15th, 2015
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 0.94 KB | None | 0 0
  1. <button>Teste</button>
  2. <script type="text/javascript">
  3. var WR = new Worker("worker.js");
  4.  
  5. // Implementação
  6. var msgseq = 0;
  7. var callbacks = {};
  8. function postWithPromise(WR, dados) {
  9.     return new Promise(function(resolve, reject) {
  10.         var id = ++msgseq;
  11.         WR.postMessage({ msgid: id, dados:dados });
  12.         callbacks[id] = { resolve:resolve, reject:reject };
  13.     });
  14. }
  15. WR.onmessage = function(event) {
  16.     var data = event.data;
  17.     if ( data.ok ) {
  18.         callbacks[data.ok].resolve(data.dados);
  19.         delete callbacks[data.ok];
  20.     }
  21.     if ( data.falhou ) {
  22.         callbacks[data.falhou].reject(data.dados);
  23.         delete callbacks[data.falhou];
  24.     }
  25. }
  26.  
  27. // Exemplo de uso
  28. document.querySelector("button").onclick = function() {
  29.     postWithPromise(WR, "dados").then(function(dados) {
  30.         alert("OK (" + dados + ")");
  31.     }, function(dados) {
  32.         alert("Falhou (" + dados + ")");
  33.     });
  34. };
  35. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement