title: Run function after another one completes
body: <pre><code>function1 = function(){
  
    something.on('transitionend', function(){
      // now function2 should run
    });
  
  }
  
  function2 = function(){
    alert('ok');
  }
  
  function1();
  function2();
  </code></pre>
  
  <p>So I heard about jQuery promises. I would return a "deferred" object, and inside the event handler I would call deferred.resolve();</p>
  
  <p>But what happens if i have multiple event handlers there and I only want the next function to run when all have been fired?
  + I don't like the idea of introducing something foreign like "deferred" into other parts of the code.</p>
  
  <p>Is there any other way to detect if function1 has finished all its work?</p>