Я хотел бы запускать функцию в начале каждой секунды.
Со следующим:
function loop() {
console.log('loop', new Date());
}
setInterval(loop, 1000);
Я получаю это: (работает с узлом v11.13.0)
> node loop.js
loop 2019-04-04T17:37:24.198Z
loop 2019-04-04T17:37:25.222Z
loop 2019-04-04T17:37:26.228Z
loop 2019-04-04T17:37:27.229Z
loop 2019-04-04T17:37:28.230Z
loop 2019-04-04T17:37:29.231Z
loop 2019-04-04T17:37:30.235Z
loop 2019-04-04T17:37:31.239Z
Вы можете видеть, что в каждом цикле число миллисекунд смещается примерно на 200 мс, и оно увеличивается на несколько миллисекунд в каждой итерации.
В идеале я бы хотел это:
> node loop.js
loop 2019-04-04T17:37:24.000Z
loop 2019-04-04T17:37:25.000Z
loop 2019-04-04T17:37:26.000Z
...