Javascript 如何在js中创建同步力?
我正在编写一个js库,它使用来自服务器(BE)的服务。我正在使用Jquery-AJAX来使用这些服务。但是,要使用此服务器,我需要设置成功/错误的回调Javascript 如何在js中创建同步力?,javascript,jquery,sync,Javascript,Jquery,Sync,我正在编写一个js库,它使用来自服务器(BE)的服务。我正在使用Jquery-AJAX来使用这些服务。但是,要使用此服务器,我需要设置成功/错误的回调 function CallAjax(callback){ $.ajax({ url: 'http://server.com/service1.svc', success: function(data) { callback(data); } }); } 因此我需要等待回调返回正确的值,但是do函数已经返回
function CallAjax(callback){
$.ajax({
url: 'http://server.com/service1.svc',
success: function(data) {
callback(data);
}
});
}
因此我需要等待回调返回正确的值,但是do函数已经返回到主页面
myLib = (function () {
do = function ()
{
var callback = function() { return true };
CallAjax(callback);
}
}())
主页:但是我想使用my lib sync,但是从调用的性质来看,我没有找到实现它的方法
I would like something like
if ( mylib.do() == true)
{ }
有什么帮助吗?您可以将
async
开关设置为false。这将导致对服务器的同步调用。请注意这样做的后果:客户端浏览器将在请求执行期间冻结。如果您不希望这种情况发生,您将不得不重新设计您的库,以便它能够与回调一起工作,这是使用AJAX的正确方法。因此,请向库的使用者提供回调。和@Agus,如果您完全同意Pointy,那么您确实不希望使用同步AJAX设置。我提到了async:false
开关只是作为一种替代,而不是作为应该使用的东西。好吧,我明白了,那么使用回调就是一种方法吗?这是一个好的做法?是的,这是最好的做法。