title: Nested setTimeout alternative?
body: <p>I need to execute 3 functions in a 1 sec delay.</p>
  
  <p>for simplicity those functions  are : </p>
  
  <pre><code>console.log('1');
  console.log('2');
  console.log('3');
  </code></pre>
  
  <p>I could do this: ( very ugly)</p>
  
  <pre><code> console.log('1')
   setTimeout(function () {
       setTimeout(function () {
           console.log('2')
           setTimeout(function () {
               console.log('3')
  
           }, 1000)
       }, 1000)
  
   }, 1000)
  </code></pre>
  
  <p>Or I could create an <code>array</code> of functions and use <code>setInterval</code> with <code>global</code> counter.</p>
  
  <p>Is there any  <em>elegant</em> way of doing this ? </p>
  
  <p>(p.s. function no.2 is not dependent on function number 1... hence - every sec execute  the next function.).</p>