HTML5教程

【金秋打卡】第25天 前端面试技能拼图3

本文主要是介绍【金秋打卡】第25天 前端面试技能拼图3,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

课程名称:2周刷完100道前端优质面试真题
课程章节:第5章 前端面试技能拼图3 :知识深度 - 原理和源码
主讲老师:双越

课程内容:

今天学习的内容包括:
5-10 -浏览器和nodejs事件循环(Event Loop)有什么区别-nodejs——微任务中process.nextTick优先级最高。

课程收获:

nodejs异步
  • nodejs 同样使用 ES 语法,也是单线程,也需要异步
  • 异步任务也分:宏任务 + 微任务
  • 但是,它的宏任务和微任务,分不同类型,也有不同优先级
console.info('start')
setImmediate(() => {
    console.info('setImmediate')
})
setTimeout(() => {
    console.info('timeout')
})
Promise.resolve().then(() => {
    console.info('promise then')
})
process.nextTick(() => {
    console.info('nextTick')
})
console.info('end')
// start end nextTick promise then timeout setImmediate
nodejs 宏任务类型和优先级 1/2
  • timers - setTimeout setInterval
  • I/O callbacks - 处理网络、流、TCP 的错误回调
  • Idle,prepare - 闲置状态(nodejs 内部使用)
nodejs 宏任务类型和优先级 2/2
  • Poll 轮循 - 执行 poll 中的 I/O 队列
  • Check 检查 - 存储 setImmediate 回调
  • Close callbacks - 关闭回调,如 socket.on(‘close’)
nodejs 微任务类型和优先级
  • 包括:promise,async/await,process.nextTick
  • 注意,process.nextTick优先级最高
nodejs event loop
  • 执行同步代码
  • 执行微任务(process.nextTick优先级更高)
  • 按顺序执行6个类型的宏任务(每个结束时都执行当前的微任务)
答案
  • 浏览器和nodejs的event loop流程基本相同
  • nodejs宏任务和微任务分类型,有优先级
注意事项
  • 推荐使用setImmediate代替process.nextTick
  • 本文基于nodejs最新版本,nodejs低版本可能会不同

今天的 学习了 浏览器和nodejs事件循环(Event Loop)有什么区别-nodejs。知道了nodejs中也有宏任务和微任务,宏任务主要包括setTimeout、setInterval以及callbacks(处理网络、流、TCP等错误回调)等,微任务主要包括promise、async/await以及process.nextTick。

下一步就是 学习了 虚拟DOM(vdom)真的很快吗。今天学习就先到这里吧。

坚持打卡,坚持学习,未来可期,加油😀~

​​​​https://img1.sycdn.imooc.com/6375c72e0001984225351363.jpg

这篇关于【金秋打卡】第25天 前端面试技能拼图3的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!