Pracuję nad programem muzycznym, który wymaga synchronizacji wielu elementów JavaScript z innymi. Używałem setInterval, co początkowo działa bardzo dobrze. Jednak z biegiem czasu elementy stopniowo tracą synchronizację, co jest złe w programie muzycznym.
Czytałem w Internecie, że setTimeoutjest dokładniejszy i setTimeoutjakoś możesz mieć pętle. Jednak nie znalazłem ogólnej wersji, która ilustruje, jak to jest możliwe.
Zasadniczo mam kilka funkcji, takich jak:
//drums
setInterval(function {
//code for the drums playing goes here
}, 8000);
//chords
setInterval(function {
//code for the chords playing goes here
}, 1000);
//bass
setInterval(function {
//code for the bass playing goes here
}, 500);
Początkowo działa bardzo dobrze, ale w ciągu około minuty dźwięki stają się zauważalnie niezsynchronizowane, jak to czytałem setInterval. Czytałem, że setTimeoutmoże być bardziej konsekwentnie dokładne.
Czy ktoś mógłby mi po prostu pokazać podstawowy przykład użycia setTimeoutdo zapętlenia czegoś w nieskończoność? Ewentualnie, jeśli istnieje sposób na osiągnięcie bardziej synchronicznych wyników z setIntervalinną funkcją lub nawet inną, proszę o informację.