我有2个差异函数中的2个ajax调用。我想使用.click调用这两个函数。func1将数据插入到数据库中,然后func2将检索数据,所以我的问题是如何等到func1完全完成后才执行func2。
我尝试了.delay(),它可以工作,但是我认为这是一个愚蠢的解决方案。
$("#updateLocation").click(function(e){ e.preventdefault; func1(); func2(); }); return false; }); function func1(){ $.ajax({ url:'', }); }); function func2(){ $.ajax({ url:'', }); });
三种方式:
成功调用func1时调用func2:
function func1() { $.ajax({ ... }).done(func2); }
Deferred时髦完成后,使用API调用func2:
Deferred
e.preventDefault(); $.when(func1).then(func2);
使func1同步(不推荐):
function func1() { $.ajax({url: '', async: false}); }