That is because, you have settings
asyn:true
.
Refer -
jQuery.ajax()[
^]
If you set it to false, then all other events would get holder back. When Ajax request completes, everything else would follow. You can set it to false, if you want to make your execution synchronous.
Otherwise you can define one callback function for Success Block as described
here[
^] and do all other things inside the callback function itself.