-
同步任务
: 在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务。 -
异步任务
: 不进入主线程、而进入"任务队列"的任务,只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。
如何实现异步编程?
为了解决上述问题,出现了异步任务执行,它的运行机制如下:
-
所有同步任务都在主线程上执行,形成一个
执行栈
。 -
主线程之外,还存在一个"任务队列"。只要异步任务有了运行结果,就在"任务队列"之中放置一个 事件。
-
一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些 对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
-
主线程不断重复上面的第三步
注意:在主线程读取任务队列的时候,任务队列是一种“先进先出”的数据结构,排在前面的事 件,优先被主线程读取。执行栈只要执行空,任务队列的第一个事件进入主线程。同时,如果存 在定时器,主线程需要检查定时器执行的时间,到了时间才能给主线程执行。
面试官:JS 如何实现异步编程?
回调函数
回调函数就是作为异步任务的执行。异步任务必须指定回调函数。
回调函数不是直接调用,而是在特定的事件或条件发生时另一方调用的,用于对该事件或条件进行响 应。比如 Ajax 回调:
// jQuery 中的 ajax
$.ajax({
type : “post”,
url : ‘test.json’,
dataType : ‘json’,
success : function(res) {
// 响应成功回调
},
fail: function(err){
// 响应失败回调
}
});
但是如果某个请求存在依赖性,如下:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
最后更多分享:前端字节跳动真题解析
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
T行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中…(img-s5Wiat0C-1712530603612)]