Здесь я сделал пользовательскую функцию setInterval, но она не работает должным образом.
function interval(func,ti,f){
if(f==0||f==undefined){
try{ //calls the function provided as argument.
func.call();
}
catch(err){ //if error occurs
alert('error occured!'); //edited
throw new Error("error occured!!");//edited
}
setTimeout(interval(func,ti,f),ti);
}
}
Основная идея заключается в том, что пользователь вызывает функцию примерно так:
interval(()=>{
console.log('hello world');
},10000);
Так как я не передаю значение f , оно равно undefined , поэтому оно удовлетворяет и входит в оператор if.Теперь, когда try{}
вызывает функцию, она выполняется.Проблема в том, что я вызываю функцию SetInterval, передавая аргументы в виде функций interval()
и ti
, которые представляют собой время в миллисекундах.
Так что она должна вызывать функцию interval()
через время ti
, но это не так.