"use strict"; module.exports = function promiseDelayEvery(delay) { let lastScheduledEmit = 0; return function delayer() { return new Promise((resolve, _reject) => { let targetTime = lastScheduledEmit + delay; let currentTime = Date.now(); if (currentTime >= targetTime) { lastScheduledEmit = currentTime; resolve(); } else { lastScheduledEmit = targetTime; setTimeout(() => { resolve(); }, targetTime - currentTime); } }); } };