私はnode.jsを使用していますが、この質問はJavaScriptに厳密に関連しています。ライトをフェードするために i2c ボードと接続していますが、特定の速度、たとえば 1 秒でフェードしたいと考えています。setInterval を使用すると、理論的には次のように動作するはずです... 1 秒間に 100 ステップずつフェードさせたい場合は、次のようにすることができます...
var fader = setInterval(function(){
//will fade light 100 steps in 1 second
doFade(something,something);
},10)
ただし、Interval ループ内のコードによっては、1 秒以上かかる場合があります (テストしたところ、私のアプリケーションでは約 2.5 秒でした)。関数 doFade が発生するのに一定の時間がかかっているという事実がこの問題を引き起こしていると確信していますが、実際にこれをすべて1秒以内に発生させる実際の方法があるかどうかに興味があります.