是否可以使用setTimout获得下面提到的输出.如果是,请分享您的 idea :-

console.log("1st");
setTimeout(()=>{
   console.log("2nd");
},0);
console.log("3rd");

**输出应该是**

1st
2nd
3rd

推荐答案

Majed Badawi的回答显示了一种实现您想要的方式,但它只是一种类似于将第三个日志(log)放在第二个之后的setTimeout回调中的构造.

这有重要的概念原因.

JavaScript是一种事件驱动语言,其中有一种称为事件循环的东西,可以判断新事件并不间断地处理它们.

你在这里寻找的是一种使用setTimeout的方法,就像在PHP、C或其他语言中使用sleep一样.它根本不存在.

sleep是一条阻塞指令:程序在继续之前等待X秒.如果在JavaScript中执行此操作,将阻止事件循环运行,甚至不想try 这样做.如果您真的坚持,可以在while语句中判断是否经过了足够的时间,这将在前端环境中冻结浏览器,或阻止在后端环境中处理新请求.

更多信息请点击这里https://cloudoki.com/js-dont-block-the-event-loop/

相比之下,setTimeout将向提供的侦听器触发一个事件.一段时间后,程序的其余部分(和事件循环)将继续运行.

Javascript相关问答推荐

判断表格单元格中是否存在文本框

如何找出摆线表面上y与x相交的地方?

如何在Obsidian dataview中创建进度条

为什么!逗号和空格不会作为输出返回,如果它在参数上?

编辑文本无响应.onClick(扩展脚本)

正则表达式,允许我匹配除已定义的子字符串之外的所有内容

如何在ASP.NET项目中使用Google Chart API JavaScript将二次轴线值格式化为百分比

确保函数签名中的类型安全:匹配值

如何将数组用作复合函数参数?

为什么我的自定义元素没有被垃圾回收?

NG/Express API路由处理程序停止工作

是否可以将Select()和Sample()与Mongoose结合使用?

在不扭曲纹理的情况下在顶点着色器中旋转UV

无法设置RazorPay订阅API项目价格

在Java脚本中录制视频后看不到曲目

每隔3个项目交替显示,然后每1个项目交替显示

调用特定数组索引时,为什么类型脚本不判断未定义

JQuery使用选项填充HTMLSELECT并设置默认结果,默认结果显示为空

在执行console.log(new X())时记录一个字符串

如何在不获取其子元素的文本内容的情况下获取元素的文本内容?