jquery ajax メソッドを呼び出すとき、メソッドが値を返したり、グローバル変数に値を代入したりする必要がある場合がありますが、プログラムの実行後に必要な値が取得されないことがよくあります。 ajax の非同期呼び出し async:true (デフォルト) を使用しているため、次のようになります。
function ManageCommentText(text) {
var result = text;
$.ajax({
data: "get",
url: "GetComments.aspx",
データ: "type=getText&commentText=" text,
キャッシュ: false,
async: false,
成功: function (data) {
result = data;
}
})
return result;
上記のメソッドは、データ値が取得されて結果に割り当てられた後でのみ、結果が返されて呼び出しが完了します。方法の。 async:true に設定すると、
はデータ値を取得する前に結果を返します。
もう 1 つの解決策は、成功メソッドにコードを直接記述することです。 (ビジネスによっては、すべてが直接成功につながるわけではありません)。
注: async: false に設定すると、ajax 非同期の利点が失われます。