underscore : after()

by Cristi Salcescu

JavaScript

function after(count, fn){
  let runCount = 0;
  return function(...args){
     runCount = runCount + 1;
     if (runCount >= count) {
         return fn(...args);        
     }
  }
}

function logResult() { 
	console.log("finish"); 
}
const logResultAfter2 = after(2, logResult);

setTimeout(function firstCall() { 
		console.log("1st"); 
		logResultAfter2(); 
}, 3000);

setTimeout(function secondCall() { 
		console.log("2nd"); 
		logResultAfter2(); 
}, 4000);