Угловое закрытие $ rootScope $ на - PullRequest
0 голосов
/ 11 октября 2019

Я объясняю, что я хочу сделать:

 (function() {

   angular
     .module(".....")
     .factory("....", ....);

   ....
   return {
      f
   };

   function f() {
     var def = $q.defer();

     def["id"] = md5(Math.random()); // <-- example of id

     (function(_def) {
        $rootScope.$on("CacheSavePending", (function(_def) {
           return function() {
              console.log(this);
           }.bind(_def);
        })(_def));
     })(def);

     return def.promise;
  }
})()

Не представляйте, что функция f будет вызываться из множества других служб

Итак, я пытаюсь сохранитьотложенный статус этого обещания.

Проблема

Моя проблема заключается в том, что при запуске события "CacheSavePending" внутреннее "this" не совпадаетсохранено в момент выполнения закрытия.

Так где я не прав ??

Примечания

Я уже пробовал другое решение, подобное следующему ... безуспешно

(function() {

   angular
     .module(".....")
     .factory("....", ....);

   ....
   return {
      f
   };

   function f() {
     var def = $q.defer();
     (function(async) {

       var _def = async;        
       $rootScope.$on("CacheSavePending", function() {
          console.log(_def);     
       }.bind(this));
     })(def);
     return def.promise;
  }
})();
...