JSFiddle - React, Tailwind, and code Playground
HTML
<h1>setInteval drift (this one works!)</h1>
<br>
<ul id="results"></ul>
JavaScript
var start;
var nextAt;
var f = function() {
if (!start) {
start = new Date().getTime();
nextAt = start;
}
nextAt += 1000;
var drift = (new Date().getTime() - start) % 1000;
$('<li>').text(drift + "ms").appendTo('#results');
setTimeout(f, nextAt - new Date().getTime());
};
f();