El uso del temporizador setTimeout en JavaScript es generalmente el siguiente. Después de llamar a beginrotate, ingresa a un proceso de ejecución regular de rotateloop, como se muestra en el siguiente código:
Copie el código de código de la siguiente manera:
ángulo var = 0;
función rotar bucle() {
si (ángulo < 360) {
ángulo++;
//usar ángulo
//......
setTimeout("rotateloop()", 100);
}
}
función comenzar a rotar() {
//hacer algo
//......
setTimeout("rotateloop()", 100);
}
Un problema con este código es que genera un ángulo variable global, lo que obviamente no es una buena práctica de programación, por lo que pensamos en usar funciones en línea y cambiamos el código a lo siguiente:
Copie el código de código de la siguiente manera:
función comenzar a rotar() {
ángulo var = 0;
función rotar bucle() {
si (ángulo < 360) {
ángulo++;
//usar ángulo
//......
setTimeout("rotateloop()", 100);
}
}
//hacer algo
//......
setTimeout("rotateloop()", 100);
}
Después de realizar este cambio, descubrí que JavaScript informó un error y no se pudo encontrar el rotaloop. Obviamente, setTimeout no encontró la función incrustada local de rotarloop. Este problema se puede resolver con un ligero cambio.
Copie el código de código de la siguiente manera:
función comenzar a rotar() {
ángulo var = 0;
función rotar bucle() {
si (ángulo < 360) {
ángulo++;
//usar ángulo
//......
setTimeout(rotarbucle, 100);
}
}
//hacer algo
//......
setTimeout(rotarbucle, 100);
}
Simplemente cambie el primer parámetro de setTimeout a un objeto de función en lugar de una cadena.