0

我正在编写一个 js lib,它使用来自服务器(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);
   }


 }())

主页:但我想使用我的 lib 同步,但从调用的性质来看,我没有找到实现它的方法。

 I would like something like 
   if ( mylib.do() == true)
     { }

有什么帮助吗?

4

1 回答 1

1

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

于 2012-06-16T20:52:22.103 回答