async: false
呼び出し時$.getJSON()
に非同期ではなくブロックするように設定することはできますか?
128623 次
7 に答える
157
$.ajax()
次のように、それを使用して同期的に呼び出しを行う必要があります。
$.ajax({
url: myUrl,
dataType: 'json',
async: false,
data: myData,
success: function(data) {
//stuff
//...
}
});
$.getJSON()
これは、現在次のように使用しているものと一致します。
$.getJSON(myUrl, myData, function(data) {
//stuff
//...
});
于 2010-05-04T13:51:03.833 に答える
48
どちらの答えも間違っています。あなたはできる。あなたは電話する必要があります
$.ajaxSetup({
async: false
});
jsonajax呼び出しの前に。そして、呼び出しが戻った後にそれをtrueに設定することができます(非同期にしたい場合は、ページ上にajaxの他の使用法がある場合)
于 2011-07-13T09:29:25.177 に答える
20
お二人とも正しいと思います。後者の答えは問題なく機能しますが、グローバルオプションを設定するのと似ているため、次のことを行う必要があります。
$.ajaxSetup({
async: false
});
//ajax call here
$.ajaxSetup({
async: true
});
于 2013-05-21T16:43:27.597 に答える
11
私の場合、ジェイDは正しいです。電話の前にこれを追加する必要があります。
$.ajaxSetup({
async: false
});
以前のコードでは、次のようになっています。
var jsonData= (function() {
var result;
$.ajax({
type:'GET',
url:'data.txt',
dataType:'json',
async:false,
success:function(data){
result = data;
}
});
return result;
})();
alert(JSON.stringify(jsonData));
それは見つけて動作します。それから私はに変更します
var jsonData= (function() {
var result;
$.getJSON('data.txt', {}, function(data){
result = data;
});
return result;
})();
alert(JSON.stringify(jsonData));
アラートは未定義です。
これらの3行を追加すると、アラートにデータが再度表示されます。
$.ajaxSetup({
async: false
});
var jsonData= (function() {
var result;
$.getJSON('data.txt', {}, function(data){
result = data;
});
return result;
})();
alert(JSON.stringify(jsonData));
于 2016-03-28T07:22:09.020 に答える
1
await
コードのネストを回避する必要がある場合:
let json;
await new Promise(done => $.getJSON('https://***', async function (data) {
json = data;
done();
}));
于 2018-08-20T23:38:38.527 に答える
0
そこにそのオプションを設定することはできないと思います。適切なパラメーターを指定してjQuery.ajax()を使用する必要があります(基本的に、getJSONはその呼び出しをより簡単なAPIにラップするだけです)。
于 2010-05-04T13:03:15.280 に答える
0
あなた自身の例を転がしてください
function syncJSON(i_url, callback) {
$.ajax({
type: "POST",
async: false,
url: i_url,
contentType: "application/json",
dataType: "json",
success: function (msg) { callback(msg) },
error: function (msg) { alert('error : ' + msg.d); }
});
}
syncJSON("/pathToYourResouce", function (msg) {
console.log(msg);
})
于 2015-12-04T08:37:06.453 に答える