recursion - JavaScript Recursive Delayed Method call -
this question has answer here:
- calling functions settimeout() 5 answers
i wanted write simple function updated paragraph element <p></p>every second new text in pattern, unsure how go delaying method call solution tried doesn't seem work. if remove settimeout method , replace simple recursive call function prints out pattern supposed doesn't print out delay want.
function printpattern(eventsource, width, height, counter){ if(height == 1 && counter >= width) { return; } else{ if(counter >= width){ eventsource.innerhtml += "<br>"; //printpattern(eventsource,width,height-1,0); settimeout(printpattern(eventsource,width,height-1,0), 1000) } else{ if((counter%2 == 0) ^ (height%2 == 1)){ eventsource.innerhtml += "o"; } else{ eventsource.innerhtml += "x"; } //printpattern(eventsource,width,height,counter+1); settimeout(printpattern(eventsource,width,height,counter+1), 1000) } } } function displaypattern(source){ printpattern(source, 4, 4, 0); }
you passing result of calling printpattern settimeout, instead of passing function itself. want:
settimeout(function() { printpattern(eventsource, width, height, counter+1); }, 1000);
Comments
Post a Comment