Первый аргумент setTimeout
должен быть вызываемой функцией.
В первом примере вы предоставляете такую функцию (() => {}
):
setTimeout(() => {
if(!(typeof numberArray === 'Array'))
reject('Not number elements found!');
},5000);
Inво втором примере, однако, вы не передаете функцию в качестве первого аргумента, вместо этого вы вызываете ее сразу (следовательно, она оценивается тут же и тогда).
setTimeout(add(numberArray, fullfil, reject),5000);
Насколько я могу видеть add(numberArray, fullfil, reject)
не не возвращает функцию.
Вы можете сделать это, чтобы обернуть ее в функцию:
setTimeout(() => add(numberArray, fullfil, reject),5000);
или заставить add
вернуть функцию:
function add(numberArray, fullfil, reject){
return () => {
if(!(typeof numberArray === 'Array'))
reject('Not number elements found!');
}
}
// or
function add(numberArray, fullfil, reject){
return function() {
if(!(typeof numberArray === 'Array'))
reject('Not number elements found!');
}
}