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

时间:2014-01-28 09:22:18

标签: javascript jquery

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

我该如何正确地做到这一点?

以下只是在我调用getMyData()时返回一个get对象:

function getMyData() {
    return $.get("www.mysite.com/data", function(data) {
               return data;
           });
}

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

2 个答案:

答案 0 :(得分:2)

所有jQuery的各种AJAX方法(例如$.get$.getJSON$.ajax)都是异步的(这是AJAX中的'A')。

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

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 :(得分:-3)

而不是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;
}