Javascript 如何封装jQuery get方法,以便将其作为另一个函数调用?
我想将jQueryJavascript 如何封装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',
get
方法封装在函数中
我如何正确地做到这一点
当我调用getMyData()
时,下面只返回一个get对象:
我希望能够调用
getMyData()
返回数据对象。而不是get
使用jqueryajax
并使用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);