setInterval(function(){}, 200)
questo codice esegue la funzione ogni 200 millisecondi, come faccio se voglio solo che la funzione venga eseguita 10 volte.grazie per aiuto.setInterval con tempo di ciclo
setInterval(function(){}, 200)
questo codice esegue la funzione ogni 200 millisecondi, come faccio se voglio solo che la funzione venga eseguita 10 volte.grazie per aiuto.setInterval con tempo di ciclo
utilizzare un contatore che incrementa ogni volta che il callback viene eseguito, e quando raggiunge il numero desiderato di esecuzioni, utilizzare clearInterval()
per uccidere il timer:
var counter = 0;
var i = setInterval(function(){
// do your thing
counter++;
if(counter === 10) {
clearInterval(i);
}
}, 200);
(function(){
var i = 10;
(function k(){
if(--i) {
setTimeout(k, 200);
}
})()
})()
+1 per usare 'setTimeout' invece di' setInterval'. Io probabilmente andare con 'var i = 10' e' se (i -) ', ma questo è solo me :-) –
@AndyE, lol grazie. E 'ancora più bello ora – Esailija
se si desidera che venga eseguito per 10 volte e il tempo dovrebbe funzionare è ogni 200 millisecondi poi 200x10 = 2000
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
clearInterval(interval)
}, 2000);
ma funziona solo 9 volte per cui dobbiamo aggiungere altri 200 millisecondi
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
clearInterval(interval)
}, 2200);
o si potrebbe eseguire prima del setInterval
yourfunction();
var interval = setInterval(yourfunction, 200);
setTimeout(function() {
clearInterval(interval)
}, 2000);
So che la sua non è sicuro, ma, la cosa è l'idea alla base del codice non come il suo fare dispiace il mio cattivo inglese – shadownrun
Suggerisco di non prendere il commento allarmante di cui sopra non troppo sul serio, ma passando generalmente una funzione è preferito . Non vale niente che passare per stringa sia * un comportamento diverso * (cioè cerca la funzione nell'ambito globale) e tutto ciò che è supportato nei browser più vecchi. –
Mi piace questa soluzione. L'unica cosa che si dovrebbe prevedere la chiara è variabile per i tempi di esecuzione, e passare il moltiplicano come secondo parametro al 'setTimeout()'. –
3 segni di uguaglianza? –
@JeffreySweeney http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use – vcsjones
grande ... sembra una buona soluzione. – bingjie2680