На самом деле это немного неверно, ведь функция может завершиться через 5мс, а повторный вызов функции произойдет через максимальный интервал. Хотелось побыстрее привести пример, но из-за неверного вопроса, наверное, добавлю кусочек кода:
function myFunction(){
function result(){
var test = Number(document.getElementById("test").innerHTML);
if(test > 0){
return;
}
else {
document.getElementsByClassName("button")[0].click();
function result(){
var test = Number(document.getElementById("test").innerHTML);
if(test > 0){
return;
}
else {
document.getElementsByClassName("button")[0].click();
function result(){
var test = Number(document.getElementById("test").innerHTML);
if(test > 0){
return;
}
else {
document.getElementsByClassName("button")[0].click();
function result(){
var test = Number(document.getElementById("test").innerHTML);
if(test > 0){
return;
}
else { /*тут может продолжаться бесконечно долго, пока не будет получено if(test > 0) */}
}
setTimeout(result, 5000);
}
}
setTimeout(result, 5000);
}
}
setTimeout(result, 5000);
}
}
}
myFunction();
Такая конструкция может длиться от 5000мсек до очень долго. return может окончить данную функцию в любой момент и задача стоит именно после окончания функции вызвать её повторно.