JS怎么判断异步是否执行完成 50

我现在有一个异步执行方法,在一个函数中调用,我需要这个异步方法执行完才让其执行函数下面的代码,其中该异步方法不能修改。我怎么才能知道异步方法执行完,或者有什么方法或者我另... 我现在有一个异步执行方法,在一个函数中调用,我需要这个异步方法执行完才让其执行函数下面的代码,其中该异步方法不能修改。我怎么才能知道异步方法执行完,或者有什么方法或者我另外写一个函数调用函数判断 展开
 我来答
不至山尾
2014-09-02 · TA获得超过674个赞
知道小有建树答主
回答量:990
采纳率:52%
帮助的人:251万
展开全部

使用jQuery队列就行,执行原理先进先出,按顺序执行。


jQuery(document).queue("message",function () { 
        jQuery.ajax({
            url:ajaxurl,
            data:{ action:"Show",param:Math.random() }, 
            type:"post",
            dataType:"json",
            success:function(jsonNotice){
                var obj = jsonNotice;
                jQuery("#messagebody").empty();
                jQuery.each(obj ,function(i, n) {
                    alert(‘sds’);
                });
                jQuery(document).dequeue("message");
            },
            error:function(){
                //alert("error");
                jQuery(document).queue("message", [] );
            }
        });
    });
    jQuery(document).queue("message",function () { 
        jQuery.ajax({
            url:ajaxurl,
            data:{ action:"returnCount",param:Math.random() }, 
            type:"post",
            success:function(str){
                PgCount = str;
                jQuery(document).dequeue("message");
            },
            error:function(){
                jQuery(document).queue("message", [] );
            }
        });
     });
      //分页DIV
      jQuery(document).queue("message",function () { 
        if(PgCount>0)
        {
            jQuery("#null_face").hide();
            jQuery("#messagepage").pagination(PgCount, {
                callback: pageselectCallback,
                prev_text: '上一页',
                next_text: '下一页',
                items_per_page:5,
                num_display_entries:6,
                current_page:pageindex,
                num_edge_entries:2
            });
            jQuery(document).dequeue("message");
        }
        else
        {
            jQuery("#null_face").show();
            jQuery("#messagepage").empty();
        }
      });
        jQuery(document).dequeue("message");   //触发队列
    }
    
    这是一个例子
藩涵袭宏壮
2019-12-09 · TA获得超过3668个赞
知道大有可为答主
回答量:3107
采纳率:32%
帮助的人:223万
展开全部
异步方法中设置一个变量,初始值为false。方法最后设置为true。这样就可以判断是否执行完成。完成了这个变量就变成true了,没完成就还是false
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuebaotuxi
2014-09-02 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4196
采纳率:85%
帮助的人:1048万
展开全部
声明一个布尔值的变量初始值为false,在这个异步方法的最后那里改变这变量的值为ture,在外面判断一下就可以了例如:
var flag=false;
function aa()
{
//异步方法要执行的代码
flag=true;
}
if(flag)
{
//异步方法结束要执行的代码
}
------------------------
不好意思,没看到该异步方法这句。。随便问一下这个异步方法有返回值吗?
更多追问追答
追问
封装的唉,还没找到这个方法,上面告诉我封装的都在一个包里面,找了下没看到,应该还有一个包,有什么方法快速定位到这个方法么
追答
你用的什么软件打开的,很多软件不是有个编辑-”查找“功能的吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式