javascript - 在 setTimeout 和 setInterval 之间先执行哪个?
问题描述
根据 MDN,函数中的回调setTimeout()
仅在主线程上的堆栈为空时执行。函数是否相同setInterval()
?如果是,那么当这两个功能都存在时,哪个将首先执行?
我正在使用 node.js 环境我得到一些与下面的代码不一致的结果
var i = 0;
function cal(){
i++;
console.log(i);
if(i == 2) clearInterval(inter);
}
const inter = setInterval(cal,2000);
setTimeout(()=> {
console.log('Hello');
},2000)
我得到的输出是
1
Hello
2
但是如果我在下面运行代码
setTimeout(()=> {
console.log('Hello');
},2000)
var i = 0;
function cal(){
i++;
console.log(i);
if(i == 2) clearInterval(inter);
}
const inter = setInterval(cal,2000);
我得到的输出是
Hello
1
2
解决方案
推荐阅读
- javascript - JS commonjs 导出函数显示为未定义
- java - Spring Boot 中多服务 bean 的设计模式
- bash - JetBrains Rider 使用 WSL 在 Windows 上的工作目录中添加新的 bash 终端
- c# - 数学 - 曲线优化、过滤、平滑
- python - 无法使用 python 请求 OSM 建筑物
- c# - $.connection.myHub.server.announce 客户端视图不起作用
- python - 在 Python 中从二进制 .bin 文件中读取数据:如何解码浮点值?
- arduino - Serial.println 仅在 loop() 内部工作
- awk - 如何使用awk在文件之间替换文本
- node.js - package-lock 和 node_modules/.package-lock 之间的区别