title: Is setTimeout a valid way to avoid stackoverflow when using callbacks?
body: <p>Say I want to create some callback hell, such as :</p>
  
  <pre><code>function handleUserInput(callback) {
      ...
  } 
  
  function get(uri, callback) {
      ...
  }
  
  function processResponseInWorker(callback) {
      ....
  }
  
  function updateIndexedDB(callback) {
      ...
  }
  
  function updateUI() {
      ...
  } 
  
  handleUserInput(get(hot_uri,processResponseInWorker(updateIndexedDB(updateUI()))));
  </code></pre>
  
  <p>This is mostly academic since the stack only gets 5 high. </p>
  
  <p>In fact, is there even a stack at all? Since these calls will return immediately, and the callback will only be invoked, outside of these contexts, by whatever asynchronous tasks these functions perform.</p>
  
  <p>Okay, just say there IS a call stack here, if each callback was forced to execute inside a <code>setTimeout(func,0)</code> then the calling function would return immediately, the whole chain would return immediately and the functions would be executed off the setTimout queue.</p>
  
  <p>Is that correct?</p>