La fonction exécuter l'un après l'autre complète

function1 = function(){

  something.on('transitionend', function(){
    //now function2 should run
  });

}

function2 = function(){
  alert('ok');
}

function1();
function2();

J'ai donc entendu parler de jQuery promesses. Je reviendrais un "différé" de l'objet, et dans le gestionnaire d'événement que j'appellerais différé.resolve();

Mais qu'advient-il si j'ai plusieurs gestionnaires d'événements là et je ne veux que la prochaine fonction à exécuter lorsque tous ont été tirés?
+ Je n'aime pas l'idée d'introduire quelque chose étrangère comme le "différé", dans d'autres parties du code.

Est-il un autre moyen de détecter si fonction1 a fini tout son travail?

Passer function2 comme un argument de function1 et à l'appeler à l'intérieur de la fonction de rappel pour .on. Comme dans: function1(function2); Et puis: function1 = function(callback){ something.on('transitionend', callback); }
Voir jsfiddle.net/rGECn/2

OriginalL'auteur thelolcat | 2014-08-05