programing

비동기:false를 $.getJ로 설정할 수 있습니까?SON call

yellowcard 2023. 10. 12. 22:40
반응형

비동기:false를 $.getJ로 설정할 수 있습니까?SON call

설정이 가능한가요?async: false부를 때$.getJSON()통화가 비동기적인 것보다 차단되도록 하는 것입니다.

다음과 같이 를 사용하여 동기적으로 통화를 수행해야 합니다.

$.ajax({
  url: myUrl,
  dataType: 'json',
  async: false,
  data: myData,
  success: function(data) {
    //stuff
    //...
  }
});

이는 현재 다음과 같이 사용하는 것과 일치합니다.

$.getJSON(myUrl, myData, function(data) { 
  //stuff
  //...
});

두 대답 모두 틀렸습니다.넌 할 수 있다.전화를 해야합니다.

$.ajaxSetup({
async: false
});

당신의 json ajax가 전화하기 전에.그리고 콜 리턴 후 true로 설정할 수 있습니다(페이지에 ajax의 다른 용도가 있는 경우 비동기화를 원할 경우).

두 분 다 맞는 것 같아요.나중의 답변은 잘 작동하지만 글로벌 옵션을 설정하는 것과 같기 때문에 다음 작업을 수행해야 합니다.

    $.ajaxSetup({
        async: false
    });

    //ajax call here

    $.ajaxSetup({
        async: true
    });

저 같은 경우는 제이 디가 맞습니다.통화 전에 이것을 추가해야 합니다.

$.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));

경고가 정의되지 않았습니다.

이 세 줄을 추가하면 경보에 데이터가 다시 표시됩니다.

$.ajaxSetup({
    async: false
});
var jsonData= (function() {
    var result;
    $.getJSON('data.txt', {}, function(data){
      result = data;
    });
    return result;
})();
alert(JSON.stringify(jsonData));

당신이 필요하다면,await네스팅 코드를 피하려면:

let json;
await new Promise(done => $.getJSON('https://***', async function (data) {
    json = data;
    done();
}));

거기에 그 옵션을 설정할 수는 없을 것 같습니다.적절한 매개 변수(기본적으로 getJ)와 함께 jQuery.jax()를 사용해야 합니다.SON은 그 호출을 더 쉬운 API로 포장할 뿐입니다.

자신의 것을 굴립니다.

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);
})

언급URL : https://stackoverflow.com/questions/2765411/is-it-possible-to-set-asyncfalse-to-getjson-call

반응형