我正在编写一个使用服务器(BE)服务的js lib。我正在使用Jquery - AJAX来使用这些服务。但是,要使用此服务器,我需要设置成功/错误的回调
function CallAjax(callback){
$.ajax({
url: 'http://server.com/service1.svc',
success: function(data) {
callback(data);
}
});
}
因此我需要等待回调才能返回正确的值,但执行功能已经返回到主页面。
myLib = (function () {
do = function ()
{
var callback = function() { return true };
CallAjax(callback);
}
}())
主页:但是我想要使用我的lib同步,但是从调用的性质来看,我没有完成它的实现。
I would like something like
if ( mylib.do() == true)
{ }
任何帮助?
答案 0 :(得分:1)
您可以将async
开关设置为false。这将导致对服务器的同步调用。请注意以下结果:客户端浏览器将在执行请求期间冻结。如果您不希望这种情况发生,您将不得不重新设计您的库,以便它与回调一起使用,恕我直言是使用AJAX的正确方法。因此,请向库的使用者提供回调。