Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何封装jQuery get方法,以便将其作为另一个函数调用?_Javascript_Jquery - Fatal编程技术网

Javascript 如何封装jQuery get方法,以便将其作为另一个函数调用?

Javascript 如何封装jQuery get方法,以便将其作为另一个函数调用?,javascript,jquery,Javascript,Jquery,我想将jQueryget方法封装在函数中 我如何正确地做到这一点 当我调用getMyData()时,下面只返回一个get对象: 我希望能够调用getMyData()返回数据对象。而不是get使用jqueryajax并使用async=false发送您的请求 function getMyData() { var result = null; $.ajax({ url: "www.mysite.com/data", type: 'get',

我想将jQuery
get
方法封装在函数中

我如何正确地做到这一点

当我调用
getMyData()
时,下面只返回一个get对象:


我希望能够调用
getMyData()
返回数据对象。

而不是
get
使用jquery
ajax
并使用
async
=
false
发送您的请求

function getMyData()
{
     var result = null;
     $.ajax({
        url: "www.mysite.com/data",
        type: 'get',
        dataType: 'html',
        async: false,
        success: function(data) {
            result = data;
        } 
     });
     return result;
}

jQuery的所有各种AJAX方法(如
$.get
$.getJSON
$.AJAX
)都是异步的(这是AJAX中的“A”)

它们返回一个对象,可用于确定何时收到数据。因此,您可以这样做:

function getMyData() {
    return $.get("www.mysite.com/data")
}
这样称呼它:

getMyData().done(function(data){
     // here data is received
});
另一个选项是向方法传递一个回调函数,以便在收到数据后调用

function getMyData(callback) {
    $.get({
         url:"www.mysite.com/data",
         success: callback
    })
}
这样称呼它:

function myCallback(data){
    // here data is received
}
getMyData(myCallback);

-1:不要建议通过设置为sync来破坏ajax。谢谢你的回答。所以我猜答案是否定的?你只是不能封装它,所以你只需要调用
getMyData()
就可以得到它看起来像是的数据对象。当然你可以封装它,但是由于ajax是异步的,你不会(除非通过强制同步来打破它)直接得到响应
function myCallback(data){
    // here data is received
}
getMyData(myCallback);