Создайте еще одну функцию, которая позаботится о проверке результата и зарегистрирует timeout
в качестве обратного вызова. Как то так.
function retryFn(fn, timeout) {
if ( fn() === false ) {
setTimeout( () => retryFn(fn, timeout), timeout)
}
}
Вы бы назвали это так
retryFn(checkHeaderPos, 100)
С небольшой настройкой функции вы даже можете контролировать время ожидания от звонка до звонка
function retryFn(fn, timeout) {
if ( fn() === false ) {
setTimeout( () => retryFn(fn, timeout * 2), timeout)
}
}
Это удвоит время ожидания от повторной попытки до повторной попытки.