JS怎么判断异步是不是执行完成
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS怎么判断异步是不是执行完成相关的知识,希望对你有一定的参考价值。
我现在有一个异步执行方法,在一个函数中调用,我需要这个异步方法执行完才让其执行函数下面的代码,其中该异步方法不能修改。我怎么才能知道异步方法执行完,或者有什么方法或者我另外写一个函数调用函数判断
使用jQuery队列就行,执行原理先进先出,按顺序执行。
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"); //触发队列
这是一个例子 参考技术A 异步方法中设置一个变量,初始值为false。方法最后设置为true。这样就可以判断是否执行完成。完成了这个变量就变成true了,没完成就还是false 参考技术B 声明一个布尔值的变量初始值为false,在这个异步方法的最后那里改变这变量的值为ture,在外面判断一下就可以了例如:
var flag=false;
function aa()
//异步方法要执行的代码
flag=true;
if(flag)
//异步方法结束要执行的代码
------------------------
不好意思,没看到该异步方法这句。。随便问一下这个异步方法有返回值吗?追问
封装的唉,还没找到这个方法,上面告诉我封装的都在一个包里面,找了下没看到,应该还有一个包,有什么方法快速定位到这个方法么
追答你用的什么软件打开的,很多软件不是有个编辑-”查找“功能的吗?
追问eclipse 查找不能查找jar包的吧
追答只要能打开的都能查找的吧,搜一下看看喽,对eclipse不熟也不清楚啊
追问试了,可以查找,没找到这个方法,郁闷了
追答有么有选择查找范围是设定为整个项目
追问就是设定的查找整个项目啊,不知道怎么回事
追答不会这个函数引用外网的js文件里面的吧?比如其他网站提供的那些js类库
以上是关于JS怎么判断异步是不是执行完成的主要内容,如果未能解决你的问题,请参考以下文章