Использование таймера setTimeout в JavaScript обычно происходит следующим образом. После вызова Beginrotate он вводит процесс регулярного выполнения Rotateloop, как показано в следующем коде:
Скопируйте код кода следующим образом:
угол вар = 0;
функция Rotateloop() {
если (угол <360) {
угол++;
//используем угол
//......
setTimeout("rotateloop()", 100);
}
}
функция начатьповорот() {
//сделать что-нибудь
//......
setTimeout("rotateloop()", 100);
}
Одна из проблем этого кода заключается в том, что он генерирует глобальную переменную angular, что, очевидно, не является хорошей практикой программирования, поэтому мы подумали об использовании встроенных функций и изменили код на следующий:
Скопируйте код кода следующим образом:
функция начатьповорот() {
угол вар = 0;
функция Rotateloop() {
если (угол <360) {
угол++;
//используем угол
//......
setTimeout("rotateloop()", 100);
}
}
//сделать что-нибудь
//......
setTimeout("rotateloop()", 100);
}
После внесения этого изменения я обнаружил, что JavaScript сообщил об ошибке и Rotateloop не был найден. Очевидно, что setTimeout не нашел локальную встроенную функцию Rotateloop. Эту проблему можно решить небольшим изменением. Код выглядит следующим образом:
Скопируйте код кода следующим образом:
функция начатьповорот() {
угол вар = 0;
функция Rotateloop() {
если (угол <360) {
угол++;
//используем угол
//......
setTimeout (rotateloop, 100);
}
}
//сделать что-нибудь
//......
setTimeout (rotateloop, 100);
}
Просто измените первый параметр setTimeout на объект функции вместо строки.