Timer — d3-timer

Funciones útiles

d3.now()

Devuelve el tiempo actual en unix timestamps. Esta función asegura consistenca temporal durante el manejo de eventos.

Temporizadores

d3.timer()

Ejecuta un temporizador, invocando un callback específico repetidamente hasta que el temporizador es apagado. Se puede pasa un numero al parámetro opcional delay en milisegundos para invocar al callback después de este tiempo.

Input

t = d3.timer(function(elapsed) {
    console.log(elapsed);
    if (elapsed > 300) { t.stop() };
}, 250)

Output

12
72
94
168
236
252
272
308

timer.stop()

Detiene un temporizador, previniendo la invocación de callbacks subsecuentes. No tiene efecto si el temporizador ya ha sido detenido.

timer.restart()

Reinicia un temporizador con un callback especificado y con parametros opcionales delay y time. Esta función es equivalente a para el temporizador y crear uno nuevo con los argumentos provistos, sin embargo este temporizador retiene la prioridad de la invocación anterior.

Input

var restarted = false;
var callback = function(elapsed){
    console.log(elapsed);
    if (elapsed > 100) {
        if (restarted == false) {
            restarted = true;
            console.log("");
            t.restart(callback, 200);
        } else {
            t.stop();
        };
    };
};

var t = d3.timer(callback, 200);
36
84
94
118

52
58
172

d3.timeout()

Como la función d3.timer(), con la diferencia de que este temporizador se detiene en el primer callback.

Input

var callback_2 = function(elapsed){
    console.log("¡Callback ejecutado!")
}
var t = d3.timeout(callback_2, 200);

Output

¡Callback ejecutado!

d3.interval()

Igual que la función d3.timer() excepto en que el callback es inovocado cada x milisegundos definidos en el parámetro delay.

Input

var callback = function(elapsed){
    console.log(elapsed);
    if (elapsed > 2000) {
        t.stop();
    }
}

var t = d3.interval(callback, 500)

Output

562
1000
1502
2000
2500