Я использую node.js, но этот вопрос строго связан с javascript. Я взаимодействую с платой i2c, чтобы угасать огни, и я хотел бы их постепенно погасить, скажем, 1 секунду. Теперь с setInterval, в теории она должна работать как ... если бы я хотел, чтобы исчезнуть их 100 шагов в 1 секунду я мог бы просто сделать что-то вроде ...Временные функции javascript с setInterval
var fader = setInterval(function(){
//will fade light 100 steps in 1 second
doFade(something,something);
},10)
Но в зависимости от кода внутри цикла интервала , это может занять больше 1 секунды (я тестировал и для моего приложения было около 2,5 секунд). Я уверен, что факт, что функция doFade занимает определенное количество времени, является причиной этой проблемы, но мне просто интересно, есть ли какой-либо реальный способ сделать это на самом деле, все произойдет в течение 1 секунды.
как делает 'doFade' функция выглядит? – lukaleli
Вместо того, чтобы предполагать, что временной интервал является постоянным 1/100th секунды, проверьте часы на каждой итерации и посмотрите, насколько далеко вы на самом деле находитесь. – Pointy
@jimmyweb это в основном сообщение с устройством по протоколу i2c. он выполняет 6 вычислений, хиты 2 других функций записывает 4 байта в устройство i2c. –