支払額がゼロより大きい場合、繰り返し実行するwhileループが必要です。しかし、コードを実行するとブラウザがクラッシュします。Whileループ内のAjaxがJavascriptでクラッシュする
var amount = Number($('#payment1').val());
while (amount > 0){
$.ajax({
type: "POST",
url: baseurl + "collection/getSingleAmort",
data: {'contractid':contractID},
success: function(result){
var data = jQuery.parseJSON(result);
console.log(data);
var amortizationAmount = Number(data['amortization'][i].amortization_amount);
amount = amount -amortizationAmount;
},
error: function (errorThrown){
//toastr.error('Error!', 'Operation Done');
//console.log(errorThrown);
}
});
}
の追加は、Ajaxは非同期であることを忘れないでください。素朴なループではなく、次の呼び出しに移る前に、Ajax呼び出しが戻って新しい値を返すのを待つ必要があります。このようにして、右の混乱を起こすか、あなたが言うように、大規模なループや何十回ものAjaxコールを実行しようとするとクラッシュすることになります。 – ADyson
Ajaxレスポンスを待つように強制するコールバック関数を実装するだけです..... –
皆さん、皆さんのご協力に感謝します。私は "async:false"を私のajaxに追加し、すべてうまくいきました。多くの尊敬! – Azis