私はクエリで作業して以来、しばらくしていました。私の人生では、これが応答を待っていない理由を理解できません。私はthis postのような答えを探しました。私はかなり簡単な何かを見逃すはずです。jquery wait on response
呼び出し機能:
$('#cappuccino-button').click(function() {
$('#screen-one').hide();
var hasMilk = IsThereMilk();
if (hasMilk) {
$('#cappuccino-success').show();
} else {
$('#milk-fail').show();
}
}
機能自体:
function IsThereMilk() {
$.ajax({
url: 'http://milkstore/gotany',
type: 'GET',
async: false,
success: function(data){
console.log('*****AJAX' + data.hasMilk);
return data.hasMilk;
}
});
}
は、誰もが私の呼び出し関数は、AJAXリクエストを待機していない理由を私は識別しやすくすることができますか?
リターンデータ「hasMilk;」は返されませんか? –
@JonHarding _ "戻り値はdata.hasMilk;戻り値は使用できません" _いいえ、 '$、ajax()'の中から返された値ではなく、 'IsThereMilk'から返されます。 '$ .ajax()'は非同期です。 '$ .ajax()'は '.then()'、 '.done()'、 '.always()'、 ''でアクセス可能なjQuery約束オブジェクトを返します。 $ .ajaxを返すときにfail() ' – guest271314
が成功/失敗のプロパティを含める必要はありませんか? –