(はてブロからの転記です)
ajaxってさ、非同期通信で便利なんだけど、処理結果によって後続の処理をどうするか決めたい時あるじゃん?
ajax実行(登録最大値を取得している)
↓
処理A
って書いても、ajaxの処理中に処理Aが実行されて、登録最大値越してるのに!なんか処理A走ってる!てきなことになりました。
結論からいうと、$.when $.done
ってのを使いました。
$.when(
$.ajax({
url: '/check_max_user',
type: 'POST',
dataType: 'json',
success: function(data, status, xhr) {
if (!data.success) {
max_user_flg = true;
alert('お腹いっぱいだお');
return false;
} else {
max_user_flg = false;
}
}
})
).done(function(){
if (!max_user_flg) {
以下略
こうすると、whenの中身実行してからdoneの処理を実行するわけですよ。