为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
1
获赞与收藏
1

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消