javascript 确保在一段代码执行后再执行下面的代码???
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 确保在一段代码执行后再执行下面的代码???相关的知识,希望对你有一定的参考价值。
我遇到的问题是这样的:
对于以下代码:
showWarning(1);
alert("rValue: "+globalNumber);
本是想让showWarning()执行之后再执行alert()
但是发现在showWarning()还没有执行完毕,alert()就已经执行了?
该如何解决这个问题呢????
请指教!!!!
试了一下,不起作用!!!!
if(showWarning(1))
alert("rValue: "+globalNumber);
else
alert("rValue: "+globalNumber);
这样就可以保证执行showWarning后再执行alert了,呵呵。比较贱的一个方法
补充:
你把alert("rValue: "+globalNumber);放在showWarning(1)这个方法的最后一句啊。 参考技术B 加个判定就可以了,
if(showWarning(1))//当执行了改代码
alert("rValue: "+globalNumber);//才执行这里
或者用代码延迟执行调用的方法吧 参考技术C 这个问题一般要涉及到一个全局变量的问题!
比如给
设定一个全局的变量var flag="";
showWarning(1)中 执行flag=1;
然后在alert之前加判断,然后递归调用延迟函数
function test()
if(flag=="")
setTimeout("test()",100);
else
alert("rValue: "+globalNumber);
这样就可以了,有问题可以HI我!! 参考技术D 负责任地说,你说的问题不会发生..
如何确保JavaScript的执行顺序
javascript代码和其他服务器端代码一样,都是按顺序执行的。但是这里有几个代码跳转的地方:
1、setTimeout / setInterval
这两个函数中的代码是定时执行,不在顺序中;
2、ajax
Ajax一般来说,在 成功/失败 获取服务器端数据后会有js代码来处理接受到的数据;ajax有两种情况,分别是同步和异步;同步是指的,js在发送ajax请求后阻塞代码执行,一直到ajax获取到服务器返回数据,然后继续按代码顺序执行,也就是说,这种情况下,ajax后面的代码中可以正常使用ajax返回的数据;异步是指ajax请求发送后,代码跳过ajax,继续执行其后的代码,ajax 响应代码在ajax获取数据后执行,也就是说,这种情况下,ajax后面的代码中不能确定ajax的状态,也不可以ajax返回的数据。 参考技术A Javascript是单线程语言,正常情况下,代码都是向下执行的。
但是,一旦接触到异步领域,就发现要把控Javascript相比其他语言是麻烦了不少。在浏览器端常见的就是DOM事件和Ajax。而服务器端则是各种异步IO。实践中,服务器NodeJs会有更多异步流程需要处理。
不知道提问者是问浏览器端还是服务器NodeJs端的,不过核心解决方案都是让你的异步api支持Promise写法,将嵌套的回调舒展成线性。后续也可以使用co或者async/await来同步化你的异步代码。本回答被提问者采纳
以上是关于javascript 确保在一段代码执行后再执行下面的代码???的主要内容,如果未能解决你的问题,请参考以下文章