小编典典

是否有不使用回叫的$ getJSON版本?

json

我正在为3rdParty javascript库实现回调,我需要返回该值,但是我需要从服务器获取该值。我需要做这样的事情:

3rdPartyObject.getCustomValue = function {
   return $.getJSON('myUrl');
}

getJson使用XMLHttpRequest(我相信)同时具有同步和异步行为,可以使用synce行为吗?


阅读 198

收藏
2020-07-27

共1个答案

小编典典

查看jQuery源代码,这就是全部$.getJSON操作:

getJSON: function( url, data, callback ) {
    return jQuery.get(url, data, callback, "json");
},

这就是所有$.get工作:

get: function( url, data, callback, type ) {
    // shift arguments if data argument was omitted
    if ( jQuery.isFunction( data ) ) {
        callback = data;
        data = null;
    }

    return jQuery.ajax({
        type: "GET",
        url: url,
        data: data,
        success: callback,
        dataType: type
    });
},

那里没有黑魔法。由于除了基本$.getJSON功能以外,您还需要自定义其他内容,因此可以使用低级$.ajax功能并将async选项传递为false:

$.ajax({
    type: 'GET',
    url: 'whatever',
    dataType: 'json',
    success: function() { },
    data: {},
    async: false
});
2020-07-27