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 に答える