0

我有以下代码:

app.factory('testservice', function ($rootScope, $q) {
    var defer = $q.defer();
    defer.promise.then(
        function (){alert('Never fires. Resolve');},
        function (){alert('Never fires. Reject');}
    );
    document.addEventListener('event', function () {
        alert("Fires");
        $rootScope.$apply(defer.resolve);
        alert("Fires");}, false);
   });
}

这是一个有角度的网站。我在玩promies。问题是当我在监听器中解决承诺时,承诺没有触发......为什么?

顺便说一句,这里的承诺当然没有意义,但我只是在测试......而且我很确定我错过了一些东西。

4

1 回答 1

1

不要使用除非有其他东西依赖于它,否则不会调用的工厂进行测试,只需使用模块运行功能。我已经修复了您之前代码中的几个语法错误,现在一切似乎都正常了。

普朗克

Javascript:

angular.module('plunker', [])

.run(function ($rootScope, $q, $log) {
    var defer = $q.defer();
    defer.promise.then(
        function (){$log.log('Resolved');},
        function (){$log.log('Rejected');}
    );
    document.addEventListener('mouseenter', function () {
        $log.log("mouse enter fired");
        $rootScope.$apply(defer.resolve);
   });
});
于 2013-10-19T20:21:58.187 回答