一尘不染

在第一个ajax函数调用完全完成之后,jQuery继续另一个ajax函数

ajax

我有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:'',
      });
});

阅读 353

收藏
2020-07-26

共1个答案

一尘不染

三种方式:

成功调用func1时调用func2:

    function func1() {
       $.ajax({ ... }).done(func2);
    }

Deferred时髦完成后,使用API调用func2:

    e.preventDefault();
    $.when(func1).then(func2);

使func1同步(不推荐):

    function func1() {
       $.ajax({url: '', async: false});
    }
2020-07-26