如何在js中产生同步力?

时间:2012-06-16 20:50:57

标签: javascript jquery sync

我正在编写一个使用服务器(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)
     { }

任何帮助?

1 个答案:

答案 0 :(得分:1)

您可以将async开关设置为false。这将导致对服务器的同步调用。请注意以下结果:客户端浏览器将在执行请求期间冻结。如果您不希望这种情况发生,您将不得不重新设计您的库,以便它与回调一起使用,恕我直言是使用AJAX的正确方法。因此,请向库的使用者提供回调。