次のコードがあります。
var dat = null;
$.get("example.com", function(data){
dat = data;
alert(dat); // Has the info.
});
alert(dat); // null.
どうすればdat
屋外にアクセスできます$.get
か?
次のコードがあります。
var dat = null;
$.get("example.com", function(data){
dat = data;
alert(dat); // Has the info.
});
alert(dat); // null.
どうすればdat
屋外にアクセスできます$.get
か?
その変数へのアクセスは正常に機能するはずです。問題は、dat を設定する関数が最後のアラートの後に実行されることです。
関数はコールバックです。get が完了した後にのみ実行されますが、最後のアラートはすぐに実行されます。
コールバックの後にコードをチェーンする方法は次のとおりです
var dat = null;
$.get("example.com", function(data){
dat = data;
alert(dat); // Has the info.
}).then(function() {
alert(dat); // Has the info too.
});
ラインアラート(データ); 非同期のため、 $.get() の前に実行されます。async:false で $.ajax() を使用するか、alert(data) を $.get() の成功に置きます。
$.ajax({
type: "GET",
async: false,
url: "example.com",
success: function(data) {
dat = data;
alert(dat);
},
error: function(e) {
console.log(e); //error
}
});