0
jsonpをjQueryで使用していて、うまくいきます。しかし、コードの実行順序は、私が期待するものではありません。私は、次のような関数があることを意味します:jsonpとjQueryを使用するときのコードの実行順序
function is_server_alive() {
var result;
console.log("beginning of function result" + result);
$.ajax({
url: server + "/is_alive",
async: false,
dataType: "jsonp",
jsonp: "callback",
success: function(JSON){
result = JSON.return;
console.log("is_server_alive result: " + result);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
console.log("server is dead " + textStatus);
},
});
console.log("end of function result: " + result);
return result;
}
私は結果変数を返します。しかし、すべてのことが起こった後、アヤックスの要求のために私はそれを行うことはできません。戻り値は未定義です。コンソールの出力は次のようになります。
beginning of function result: undefined
end of function result: undefined
is_server_alive result: 0
私は真偽と非同期の両方で非同期を試しています。 $.ajax
関数に、あなたは他の設定、complete
を追加することができます
beginning of function result: undefined
is_server_alive result: 0
end of function result: 0
でもない 'リターン結果を;'完全なハンドラでは 'is_server_alive'の返り値として実際に動作しますか? –
これは、コンソール出力のみを変更しますが、実行順序は変更しません。まだAjaxリクエストは他のものの後に実行されます。 – alpert