《JavaScript》异步编程,前端开发基础视频教程

定时触发线程

setTimeoutsetInterval就是在这个线程中运行的,也就是当这两个任务触发后,会放在定时触发线程中执行,不会阻塞JS代码的运行,;

事件触发线程

将满足触发条件的事件放入任务队列,换句话说,就是一些异步的事件满足触发条件后,该任务就会被放到事件触发线程里,等待触发;

异步HTTP请求线程

也就是处理ajax请求的线程,比如实际项目中的接口,再向后台发出请求后,该任务就会被放到这条线程里面,当接口有返回了,那么该任务又会被放到事件触发线程里,等待被触发;

异步场景

==============================================================

在前端通常而言,异步场景基本只有四种,分别是:**定时器,网络请求,事件绑定,ES6 Promise,**这几种情况基本覆盖了前端绝大多数的异步场景,以定时器为例,具体看一下当一个定时器触发后,大致的机制;

定时器


简介

定时器是前端较为常用的一个函数功能,当一个定时器触发后,大致上会进行如下流程:

在这里插入图片描述

  • 主线程也就是我们说的JS引擎线程,主线程会遍历Event Loop,来判断是否有异步任务已经就绪,需要执行;

  • web API可以理解成浏览器提供的一种能力,setTimeout就是一种延迟触发的能力,在主线程中调用了这种能力;

  • 定时器线程:调用了setTimeout之后,这个任务就会被放到定时器线程;

  • 事件触发线程当定时器结束之后,那么这个事件会转交到事件触发线程中;

  • 任务队列触发线程最终会将这个任务放置到任务队列中;

执行过程

先看一段代码:

console.log(“1”);

setTimeout(()=>{

console.log(2);

},2000)

console.log(3)

这段代码是一个最简单的定时器

在这里插入图片描述

使用流程图来解释上面那段定时器代码:

  1. 执行console.log(1),这是一个同步任务,入栈

  2. 执行console.log,出栈,打印了1;

  3. 执行了setTimeout函数,但是发现这个web api,因此先调用了web api;

  4. 通知定时器触发线程,定时2秒后触发;

  5. 执行console.log(3),这是一个同步任务,入栈;

  6. 执行console.log,出栈,打印了3;

  7. 这时候执行栈空了,就要去检查任务队列;

  8. 刚开始的时候还没有到2秒钟,因此任务队列是空的,没有任务;

  9. 循环检查;

  10. 2s后发现有任务队列里有一个任务;

  11. 执行定时器任务;

问题

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

正值招聘旺季,很多小伙伴都询问我有没有前端方面的面试题!

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

c (备注前端)**
[外链图片转存中…(img-8Ue35PYW-1711986471427)]

最后

正值招聘旺季,很多小伙伴都询问我有没有前端方面的面试题!

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端资料图.PNG

  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值