微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript运行机制Node版

Node与浏览器的 Event Loop 差异

浏览器环境下,microtask的任务队列是每个macrotask执行完之后执行。 而在Node.js中,microtask会在事件循环的各个阶段之间执行,也就是一个阶段执行完毕,就会去执行microtask队列的任务。   +1 process.nextTick(function () { console.log('nextTick执行1'); });   +2 process.nextTick(function () { console.log('nextTick执行2'); });   +3 setImmediate(function () { console.log('setImmediateჽ执行1');   +4 process.nextTick(function () { console.log('强势插入'); }); });   +5 setImmediate(function () { console.log('setImmediateჽ执行2'); });   +6 console.log('正常执行');   正常执行 nextTick执行1 nextTick执行2 setImmediate执行1 强势插入 setImmediateჽ执行2 在node上  
macrotask: javascript 代码,所有同步代码执行。输出:正常执行。注册 +3 +5 到 Macrotask。执行process.nextTick(),最终输出:正常执行, nextTick执行1, nextTick执行2。 **microtask: 无
macrotask: 执行 +3 +5。 输出:setImmediate执行1, setImmediateჽ执行2。 执行process.nextTick(),最终输出:setImmediate执行1, setImmediateჽ执行2,强势插入。 microtask: 无
所以最终输出为:正常执行, nextTick执行1, nextTick执行2,setImmediate执行1, setImmediateჽ执行2,强势插入。  
node.js 是⼀个 JS 的服务端运⾏环境,简单的来说,是在 JS 语⾔规范的基础上,封装了⼀些服务端的运⾏时 对象,让我们能够简单实现⾮常多的业务功能。> 基于 JS 语法增加与操作系统之间的交互。
 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐