我是一个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;
});
}
现在,我想调用此函数,而不是阻塞线程,即异步。如何在从此方法返回后进行函数调用,但不阻塞任何内容?
答案 0 :(得分: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);
});
答案 1 :(得分:6)
从函数中返回$.get
并向其添加回调。
function checkMsgs(t1,t2) {
return $.get("http://www.mySite.com/web/test.php");
}
checkMsg("foo","bar").done(function(){
alert("It's Done!");
});