Предупреждение: Требуется jQuery 1.5 +
$.firstfunc = function() {
return $.ajax({});
}
$.secondfunc = function() {
return $.ajax({});
}
$(function() {
$.when($.firstfunc).then($.secondfunc);
});
Использование черной магии $.Deferred
и $.when
.
В основном говорится, что когда первая функция завершает свой вызов ajax, а затем вызывает вторую функцию.
Это потому, что $.ajax
возвращает объект jqXHR
, который наследуется от $.Deferred
.
Если вы хотите прикрепить обратный вызов, когда оба $.firstfunc
и $.secondfunc
завершены, вы можете сделать следующее (требуется jQuery 1.6):
$(function() {
$.first().pipe($.second).done(function(second_data) {
// both finished.
});
});
Legacy: Поддержка jQuery 1.4.2 и 1.3.2.
$.firstfunc = function(cb) {
$.ajax({
success: function() {
...
cb();
},
...
});
}
$.secondfunc = ...
$(function() {
$.firstfunc($.secondfunc);
});