我正在尝试编写一个模拟轮询功能的服务。我的代码如下:
app.service('poller', ['$timeout',
function($timeout) {
return ({
poll
})
function poll(e) {
$timeout(function() {
poll(e);
}, 5000);
}
}
]);
当我在控制器中注入它时,我尝试使用它:
poller.poll($scope.getNewMessages());
奇怪的是它只被召唤一次。此外,当我尝试在console.log(e)
这样的服务中使用控制台日志时,我得到了未定义。我做错了什么?
答案 0 :(得分:1)
您需要将函数作为值传递给poller函数,并且需要调用函数:
app.service('poller', ['$timeout', function($timeout) {
return ({
poll
});
function poll(e) {
e();
$timeout(function() {
poll(e);
}, 5000);
}
}
]);
poller.poll($scope.getNewMessages);