我打了两个ajax电话。只有在第一个完成后才能调用第二个:
var deferred = $.Deferred();
firstAjaxCall();
deferred.done(function () {
secondAjaxCall();
});
function firstAjaxCall() {
$.ajax({
url: '/SomeUrl',
type: 'POST',
success: function () {
deferred.resolve();
}
});
}
function secondAjaxCall() {
$.ajax({
url: '/SomeOtherUrl',
type: 'Get',
});
}
我也试过这样(
jQuery deferreds
)
$.when(firstAjaxCall()).done(function() {
secondAjaxCall();
});
但没有运气。
不过,在第一个例子中,有时会先调用第二个调用,有时则不会
在第一个示例中,流程如下:
firstAjaxCall();
secondAjaxCall();
deferred.resolve();
为什么先打第二个电话,然后再打
deferred.resolve()
?