在继续之前,我需要等待某个 ajax 请求完成。由于这个请求是从不同的锚点触发的,所以我将它包装在一个函数中。在第一个 ajax 函数完成后会发生第二个 ajax 请求。
起初,我试图等待第一个完成使用$.ajaxComplete()
,因为此后执行的第二个 ajax 请求陷入了无限循环。
我发现了一些关于 using 的示例,$.when
但没有一个显示是否可以使用方法而不是 deferreds。
这是我想做的:
$.when( functionFirstAjaxCall(data) ).then( function() {
// after first ajax request has finished, do the following:
$.ajax({
//...
});
});
是否functionFirstAjaxCall()
需要有一定的返回值或者我怎样才能让这个工作?顺便说一句,该解决方案不需要使用$.when
.
更新:按照 Vandesh 的建议,我通过创建自定义事件来实现它。
function first() {
$.ajax({
// ...
success: function (d) {
$.event.trigger({
type: "finished",
data: d
});
}
});
}
$(document).on('finished', second());
无论如何,使用 会有一个简单的解决方案$.when
吗?