Advertisement
sombriks

postMessage vs Promise

Sep 8th, 2015
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // faremos uns postMessage esperando o melhor.
  2. angular.module("roundabout").factory("coreservice",function($http,$q){
  3.   var serverpoint = window.frames["serverpoint"];
  4.   var CoreService = {
  5.     process:function(data){
  6.       var deferred = $q.defer();
  7.       data.ticket = "ticket-"+(new Date().getTime());
  8.       // TODO adcionar um equema de timeout aqui
  9.       // var subject = data.subject;
  10.       // var payload = data.payload;
  11.       if(!serverpoint)
  12.         serverpoint=window.frames["serverpoint"];
  13.       var cbk = function(event){
  14.         if(event.data.ticket==data.ticket){
  15.           deferred.resolve(event.data);
  16.           window.removeEventListener(cbk);
  17.         }
  18.       };
  19.       window.addEventListener("message",cbk)
  20.       if(serverpoint.postMessage){
  21.         serverpoint.postMessage(data,"*");
  22.       }else{
  23.         console.debug("serverpoint not ready");
  24.         deferred.reject("serverpoint not ready");
  25.       }
  26.       return deferred.promise;
  27.     }
  28.   };
  29.   window.addEventListener("message",function(evt){
  30.     if(CoreService[evt.data.subject])
  31.       CoreService[evt.data.subject](evt.data.payload);
  32.   });
  33.   return CoreService;
  34. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement