Hacker News new | ask | show | jobs
by sgk284 5827 days ago
I understand the scoping issue here, but the recursive solution is just all around better:

  function countdown(num) {
      if(num < 0) {
          return;
      }
      setTimeout(function() {
          alert(num);
          countdown(num - 1);
      }, 1000);
  }
Note: I'm aware that the dropbox version shows the first alert without any delay, whereas this waits a second before showing anything. This is slightly different behavior, but arguably acceptable.
1 comments

You can make the recursive solution work without any delay:

  function countdown(n) {
      if(n >= 0) {
          alert(n);
          setTimeout(function() {countdown(n-1);}, 1000);
      }
  }