Javascript 如何在js中创建同步力?

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函数已经返回

我正在编写一个js库,它使用来自服务器(BE)的服务。我正在使用Jquery-AJAX来使用这些服务。但是,要使用此服务器,我需要设置成功/错误的回调

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
开关只是作为一种替代,而不是作为应该使用的东西。好吧,我明白了,那么使用回调就是一种方法吗?这是一个好的做法?是的,这是最好的做法。