怎么判断是浏览器还是node环境
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章将为大家详细讲解有关怎么判断是浏览器还是node环境,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。node中window是未定义;setImmediate是
千家信息网最后更新 2025年11月06日怎么判断是浏览器还是node环境
这篇文章将为大家详细讲解有关怎么判断是浏览器还是node环境,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
node中window是未定义;setImmediate是定义的,在浏览器中未定义
timer阶段:这个阶段会执行setTimeout和setInterval
check阶段:执行setImmediate
macro task [task] 宏任务 :script(页面代码)、setTimeout、setInterval、I/O事件、UI交互事件(点击事件)
micro task [job] 微任务: Promise、process.nextTick、Promise().then()
宏任务可以有多个队列
微任务只有一个队列
setTimeout任务之间,推迟执行的毫秒数越小,排在队列里面越靠前
在node里面,timers(setTimeout、setInterval)会优先于setImmediate
setTimeout(() => { console.log('setTimeout')},0); // 大于1000时,会先执行setImmediatesetImmediate(()=> { console.log('setImmediate')})console.log('start');setTimeout(function (){ console.log('timeout');},10);new Promise((resolve) => { console.log('promise'); resolve() setTimeout(() => { console.log('Promsie中的setTimeout'); },0);}).then(() => { console.log('then');});console.log('end');运行机制
1. 在执行栈中执行一个宏任务。
2. 执行过程中遇到微任务,将微任务添加到微任务队列中。
3. 当前宏任务执行完毕,立即执行微任务队列中的任务。
4. 当前微任务队列中的任务执行完毕,检查渲染,GUI线程接管渲染。
5. 渲染完毕后,js线程接管,开启下一次事件循环,执行下一次宏任务(事件队列中取)。
关于"怎么判断是浏览器还是node环境"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
任务
队列
事件
浏览器
浏览
篇文章
阶段
环境
还是
更多
线程
不错
实用
之间
代码
内容
只有
多个
文章
机制
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大连嘉航软件开发有限公司
手游方舟pvp服务器招管理
服务器软件维护工作
自主知识产权的专利数据库
北京麦穗软件开发公司
滴滴出行被实施网络安全审查
页面访问数据库 什么技术
软件开发环境包括哪四层
关于网络安全的校园广播
软件开发记录文档
系统界面与数据库怎么连接
阿里云服务器好管理吗
mcpe服务器饥饿
网络技术发生的有趣的事
软件开发核心技术指标是什么
云服务器那家好
广东第五大道网络技术公司
seer数据库注册丁香园
超级玛丽铃声软件开发
与生物信息有关的数据库
ios和安卓软件开发哪个贵
2019服务器管理
数据库迁移技术的毕业论文
广州瑞庭网络技术有限公司
wd平台服务器在哪里
关系型与非关系型数据库
湖州市网络安全宣传
建拓网络技术有限公司待遇
现代网络技术包含哪些
星空夺宝软件开发