How to wait for ajax success handler to finish before executing another

前端 未结 4 1310
梦如初夏
梦如初夏 2021-01-18 21:50

I have the following scenario in my javascript:

  1. Ajax loads a record.
  2. Based on the return value of that record, another ajax call grabs a html form tha
4条回答
  •  春和景丽
    2021-01-18 22:56

    You should use when or success not both. It sounds like (although code samples would make this clearer) you are attaching two separate listeners to the ajax call, but you only want one to execute after the other.
    I'd either roll both into one event like:

    $.ajax( ... , function(){
        // success
        // prep stuff here
        $.ajax( ... , function(){
            // second success
            // do final stuff here
        });
    });
    

    Or wrap you ajax call inside another promise (this may require a bit more reading around jQuery promises).

    But if you do something like

    $.when($.ajax( ... , function(){
        // thing a
    }).then(function(){
        // thing b
    });
    

    Thing a and b will execute at the same time, because they are designed for pretty much the same thing.

提交回复
热议问题