Implement delay method that callback function called every 3 sec by delay method in JS | JavaScript, Node.js, React.js and Angular.js Forum
J
JYOTI SHARMA Posted on 04/01/2022

function delay(val){

 

}
var callback = () => console.log('runs after 3 seconds');
delay(3).then(callback);


M
Replied on 04/01/2022

Using callback:

function timeout(range, time, callback){
    var i = range[0];                
    callback(i);
    Loop();
    function Loop(){
        setTimeout(function(){
            i++;
            if (i<range[1]){
                callback(i);
                Loop();
            }
        }, time*1000)
    } 
}

//This function prints the loop number every second
timeout([0, 5], 3, function(i){
    console.log(i);
});

And using Promise and await:

// Returns a Promise that resolves after "ms" Milliseconds
const timer = ms => new Promise(res => setTimeout(res, ms))

async function load () { // We need to wrap the loop into an async function for this to work
  for (var i = 0; i < 3; i++) {
    console.log(i);
    await timer(3000); // then the created Promise can be awaited
  }
}

load();