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

我现在有一个异步执行方法,在一个函数中调用,我需要这个异步方法执行完才让其执行函数下面的代码,其中该异步方法不能修改。我怎么才能知道异步方法执行完,或者有什么方法或者我另外写一个函数调用函数判断

使用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");   //触发队列
    }
    
    这是一个例子

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-09
异步方法中设置一个变量,初始值为false。方法最后设置为true。这样就可以判断是否执行完成。完成了这个变量就变成true了,没完成就还是false
第2个回答  2014-09-02
声明一个布尔值的变量初始值为false,在这个异步方法的最后那里改变这变量的值为ture,在外面判断一下就可以了例如:
var flag=false;
function aa()
{
//异步方法要执行的代码
flag=true;
}
if(flag)
{
//异步方法结束要执行的代码
}
------------------------
不好意思,没看到该异步方法这句。。随便问一下这个异步方法有返回值吗?追问

封装的唉,还没找到这个方法,上面告诉我封装的都在一个包里面,找了下没看到,应该还有一个包,有什么方法快速定位到这个方法么

追答

你用的什么软件打开的,很多软件不是有个编辑-”查找“功能的吗?

追问

eclipse 查找不能查找jar包的吧

追答

只要能打开的都能查找的吧,搜一下看看喽,对eclipse不熟也不清楚啊

追问

试了,可以查找,没找到这个方法,郁闷了

追答

有么有选择查找范围是设定为整个项目

追问

就是设定的查找整个项目啊,不知道怎么回事

追答

不会这个函数引用外网的js文件里面的吧?比如其他网站提供的那些js类库

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网