, .
function2 function1;
function1 = function(callback){
something.on('transitionend', function(){
callback();
});
}
function2 = function(){
alert('ok');
}
function1(function2);
... , function3 function2 function4 3.
;
function1 = function(){
var def = new jQuery.Deferred();
something.on('transitionend', function(){
def.resolve(arguments);
});
return def.promise();
}
function2 = function(){
alert('ok');
}
function1().done(function2);
..., , ( , promises, ).
. , , - , :
function1 = function(){
var def = new jQuery.Deferred();
var wait = 4;
function maybeFire() {
if (--wait) {
def.resolve();
}
}
something.on('transitionend', maybeFire);
something.on('somethingelse', maybeFire);
something.on('somethingelse', maybeFire);
something.on('somethingelse', maybeFire);
return def.promise();
}
function2 = function(){
alert('ok');
}
function1().done(function2);
$.when(), , , , maybeFire.