Fix timer id generation -- we shouldn't have clashing id's anymore.

This commit is contained in:
Hristo Deshev
2015-07-14 14:49:16 +03:00
parent 56f42c654b
commit aec5e8b468
2 changed files with 15 additions and 11 deletions

View File

@@ -2,6 +2,7 @@
* iOS specific timer functions implementation.
*/
var timeoutCallbacks = {};
var timerId = 0;
class TimerTargetImpl extends NSObject {
static new(): TimerTargetImpl {
@@ -25,7 +26,8 @@ class TimerTargetImpl extends NSObject {
}
function createTimerAndGetId(callback: Function, milliseconds: number, shouldRepeat: boolean): number {
var id = new Date().getUTCMilliseconds();
timerId++;
var id = timerId;
var timerTarget = TimerTargetImpl.new().initWithCallback(callback);
var timer = NSTimer.scheduledTimerWithTimeIntervalTargetSelectorUserInfoRepeats(milliseconds / 1000, timerTarget, "tick", null, shouldRepeat);
@@ -44,7 +46,7 @@ export function setTimeout(callback: Function, milliseconds = 0): number {
export function clearTimeout(id: number): void {
if (timeoutCallbacks[id]) {
timeoutCallbacks[id].invalidate();
timeoutCallbacks[id] = null;
delete timeoutCallbacks[id];
}
}
@@ -52,4 +54,4 @@ export function setInterval(callback: Function, milliseconds = 0): number {
return createTimerAndGetId(callback, milliseconds, true);
}
export var clearInterval = clearTimeout;
export var clearInterval = clearTimeout;