下一个语句在前一个语句结束之前运行
The next statement runs before the former one ends
我在我的firefox上运行这些代码,并且console
得到3 2 1
,这意味着语句在前一个语句结束之前运行。
function test(){
setTimeout(function(){console.log(1)},1000); //statement 0
setTimeout(function(){console.log(2)},500); //statement 1
}
test();
console.log(3); //statement 2
它是javascript的一个功能,我是否必须在分配一些值后仔细检查变量?因为这太复杂了。
var a;
while(a!==get('some')){
a=get('some');
if(a===get('some')){
whatShouldBeRun();afterGetSome();
break;
}
}
这正是您要求它做的。首先,您要求它启动两个语句,以便在将来运行某个点。然后写上"3"。第一个语句的时间是运行,然后运行,并写"2"。最后,第三个程序运行并写入"1"。
如果你正在使用异步处理- settimeout -那么是的,你需要像处理任何其他语言一样处理它。但是如果你需要它按顺序运行,就不要让它异步运行。
让它们一个接一个地运行:
function test()
{
setTimeout(function()
{
console.log(1);setTimeout(function()
{
console.log(2);console.log(3)
},500)
},1000);
}
test();
上面的代码启动了两个计时器,分别在500和1000毫秒后触发。console.log(3);
将首先运行,没有延迟;500毫秒后,执行console.log(2)
,再过500毫秒,执行console.log(1)
。这是计时器在任何包含计时器的语言/框架中工作的一般方式。
顺序代码按顺序运行,即后续代码行按顺序执行。基于事件的系统(如web浏览器及其JavaScript实现)的不同之处在于,事件处理程序仅在事件发生时执行。代码test(); console.log(3);
按顺序执行:使用给定的时间间隔和事件处理程序调用setTimeout
来启动两个计时器,并将3
写入控制台。第一个计时器的"tick"事件在500毫秒后出现,它的事件处理程序函数将把2
写入控制台。第二个的"tick"事件发生在另一个500毫秒之后,并将写入1
.
相关文章:
- 在Javascript中将一个值和字符串数组转换为if语句
- 如果语句为true,则对一个或多个ng进行角度检查
- 如何在不使用return的情况下跳过下一个if语句
- 我们可以在一个js文件中有多个module.exports语句吗
- 需要一个用于评分系统的 JavaScript IF 语句
- 当解析树只有一个语句时,如何评估生产“SourceElements:SourceElements SourceEleme
- for 循环中的 if 语句都执行,而不仅仅是一个
- Js提示:“;期望一个赋值或函数调用,而看到一个表达式“;,Switch语句
- 为什么下面的if语句排除了一个'It’s和其他的一样
- 阻止表单提交 javascript 为什么有一个明显的错误语句返回 true
- 创建一个“;“开关”;Adobe Acrobat表单字段的语句
- Vanilla JavaScript:有没有办法在一个语句中切换多个CSS类
- 如何停止和if语句如果另一个if语句为true
- Javascript验证不起作用——只要一个if语句为true,它就会停止所有if语句
- 如何在函数中编写 if/else 语句,告诉我一个数字是否可以被 2 整除(在 javascript 中)
- 如何在jquery方法中创建一个if语句
- 如何发送一个语句以用作代码中的命令
- 如果jquery脚本's在另一个php页面的php-include语句中使用
- 如何简化一个长 javascript switch case 语句
- 这是一个有 2 个条件的条件语句,我需要添加第三个条件