我有以下代码:
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);
});
}
这是一个有棱有角的网站。而我正在玩各种承诺。问题是,当我在听众中解决承诺时,承诺不会解雇......为什么?
顺便说一下,这里的承诺毫无意义,但我只是在测试...而且我很确定我错过了什么。
答案 0 :(得分: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);
});
});