Полагаю, вам действительно нужно обновить sh через 3 секунды после завершения предыдущего, чтобы не накапливать обновления, если для их загрузки требуется больше 3. Я добавил к задержке, чтобы вы могли видеть, что она делает это.
async function delay(delayMilliseconds) {
return new Promise(resolve => {
setTimeout(() => {
resolve(timeToWait);
}, delayMilliseconds);
});
}
let timeToWait = 1000;
function redoLoad(forHowLong) {
console.log("called redoLoad: " + forHowLong);
// for fun, change the delay, then reset it again
forHowLong = timeToWait >= 5000 ? 1000 : forHowLong + 1000;
$('#time').load("Callgen1.html", function(responseText, textStatus, jqXHR) {
console.log(textStatus);
timeToWait = forHowLong;
sampleDelay(forHowLong);
});
}
async function sampleDelay(waitTime) {
console.log("before ");
let delayres = await delay(waitTime)
.then(function(v) {
redoLoad(v);
});
console.log("after:" + waitTime);
}
sampleDelay(timeToWait);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="time">howdy</div>