有神马矛盾?  就是等待A执行完成以后执行B函数。 不是把B放在A的CALLBACK里面。

解决方案 »

  1.   

    楼主理解异步执行么?
    不在回调函数里面调用 你怎么保证B函数执行时Ajax(注意ajax是异步的 就是说和A、B函数不在一个线程)请求已返回结果?
    当然如果你B函数不需要这个返回结果,直接先后调用就行了,无论你先调用A还是B,B函数都会在ajax回调函数之前执行
      

  2.   

    var isreturn=0;
    ajax clallback function(){
    isreturn=1;
    }
    回调里设置修改全局变量
    settimeout("if(isreturn)b()",3000)不过这好象没什么明显的好处
      

  3.   

    1、异步中 回调
    2、设置同步调用3、自己setTimeout 递归判断 异步方法是否执行完毕
      

  4.   

    没明白楼主的意思 A函数里应该是一个ajax异步请求,既然你不在回调函数中调用你可以在A函数结束前调用啊!这样代码一边执行ajax异步请求一边执行B函数没有顺序,是并列的啊
    funciton A(){
      $.ajax({ 
        url: "index.html",//异步请求路径
        success: function(){//回调函数    }});
      B();
    }
      

  5.   

    刚才看了一遍楼主的标题懂了上边代码改成这样:
    funciton A(){
      $.ajax({  
      url: "index.html",//异步请求路径
      async:false,//默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
      success: function(){//回调函数  }});
      B();

    现在就需要等异步请求执行完,后在执行B函数了,不过这个是用jquery
      

  6.   

    搞定 代码 还是我自己来贴吧。
    $("body").ajaxComplete(function () {
           op.isStop();     
                
     });利用JQUERY的一个AJAX 请求完成 可以实现AJAX 异步请求等待。
      

  7.   

    楼主,我也遇到一个相同的问题!我想在A执行完之后执行B函数!其中A中又包含着异步函数!求解答在线等!
      

  8.   

    这么2的,很简单的,不用那么复杂的, 再A的ajax请求的回调函数中,再调用函数B,就没有问题了
      

  9.   

    真搞笑,楼上一大堆人还没了解楼主的想法就开始装必
    楼主的意思是想实现 异步请求,同步等待
    这样做有什么好处呢
    异步AJAX请求,避免了同步AJAX请求中页面卡死的情况
    这样可以打开一个进度条什么的让客户觉得这个东西还是在运行的
    同步等待,主要是由于业务原因这个请求必须等它返回才能继续往下走
      

  10.   

    可是你说的,不就是用 异步回掉函数吗?
    虽然是坟贴,还是回一下
    当然不是异步回调,如果是就不用头痛了
    你再仔细看看我的描述
    如果非要用回调实现,就需要使用while之类的忙时等待方式,消耗CPU