Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <button>Teste</button>
- <script type="text/javascript">
- var WR = new Worker("worker.js");
- // Implementação
- var msgseq = 0;
- var callbacks = {};
- function postWithPromise(WR, dados) {
- return new Promise(function(resolve, reject) {
- var id = ++msgseq;
- WR.postMessage({ msgid: id, dados:dados });
- callbacks[id] = { resolve:resolve, reject:reject };
- });
- }
- WR.onmessage = function(event) {
- var data = event.data;
- if ( data.ok ) {
- callbacks[data.ok].resolve(data.dados);
- delete callbacks[data.ok];
- }
- if ( data.falhou ) {
- callbacks[data.falhou].reject(data.dados);
- delete callbacks[data.falhou];
- }
- }
- // Exemplo de uso
- document.querySelector("button").onclick = function() {
- postWithPromise(WR, "dados").then(function(dados) {
- alert("OK (" + dados + ")");
- }, function(dados) {
- alert("Falhou (" + dados + ")");
- });
- };
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement