3

我是一个 jQuery 新手。我有一个核心 js 文件,我的用户看不到它。我里面有以下函数,它发出一个服务器请求 -

function checkMsgs(t1,t2) {

// poll the url
    // return the results 

    $.get("http://www.mySite.com/web/test.php", {
        "t1" : t1,
            "t2" : t2
    }, function(data) {
    return data;
});

}

现在,我想调用这个函数,而不阻塞线程,即异步。从该方法返回后如何进行函数调用,但不阻塞任何内容?

4

2 回答 2

6

您不能从 中“返回” $.get,它不会那样工作。您要做的是将回调传递给checkMsgs并在完成时调用它$.get

function checkMsgs(t1, t2, callback) {
    $.get("http://www.mySite.com/web/test.php", {
        "t1": t1,
        "t2": t2
    }, function (data) {
        // do whatever...
        $.isFunction(callback) && callback(data);
    });
}

然后你checkMsgs这样调用:

checkMsgs('a', 'b', function(data){
    console.log(data);
});
于 2012-05-30T20:42:30.970 回答
6

从函数返回$.get并为其添加回调。

function checkMsgs(t1,t2) {
    return $.get("http://www.mySite.com/web/test.php");
}

checkMsg("foo","bar").done(function(){
    alert("It's Done!");
});
于 2012-05-30T20:43:25.797 回答