在我的服务代码的一个区域,我有类似的东西:
update
在另一个代码区域,我有一个每60秒执行一次的函数:
$rootScope.$emit('rootScope:success-response')
如果发出了rootScope:success-response'那么我怎么能阻止myFunc运行?在过去60秒?
答案 0 :(得分:2)
一种方法是取消$interval
,然后重新设置,但更有效的解决方案是保留上次发出的事件的时间戳,并将其与+Date()
内的当前myFunc
进行比较 - 如果时间戳是< 60秒,只需终止myFunc
- return;
。
编辑:
$rootScope.$on('rootScope:success-response', function (){
YourService.lastEmitted = +new Date(); // fast conversion Date to int
});
--- YourService:
lastEmitted = 1234567;
function myFunc(){
if (lastEmitted < +new Date()){
return;
}
}