异步是个大问题---《你不知道的javascript》异步部分笔记
本篇文章是我一边看《你不知道的JavaScript》中卷中的异步的部分,一边做的笔记和理解。异步是JavaScript中很重要的一块知识,我希望能深入的了解和理解异步编程技术
异步请求是:两个任务执行,A任务先执行到一半,在等待(有可能是等待网络响应或用户输入等)的间隙,开始执行B任务,然后等到A任务返回的结果了,然后通过回调函数告诉js可以接着处理A任务了。
同步请求是:两个任务单线程执行,前面的任务执行完,才能执行下一个任务,也就是前面的任务会阻塞进程。
第一章 异步:现在与将来
在JavaScript中,如何表达和控制持续一段时间的程序行为(指的是程序的一部分现在运行,而另一部分在将来运行),是一件很重要的事情。程序中现在运行的部分和将来运行的部分之间(有可能是在等待用户输入、从数据库中请求数据、通过网络发送数据并等待响应,或者是在以固定时间间隔执行重复任务)的关系就是异步编程的核心。
想要学习异步编程技术,我们需要先深入的理解异步的概念。
- 异步执行机制:任何时候只要把一段代码包装成一个函数,并指定他在响应某个事件时执行,你就是在代码中创建了一个将来执行的块,也由此在这个程序中引入了异步执行机制。
- 事件循环:有一个持续运行的循环,比如用while(true)来实现,循环的每一轮成为一个trick,对于每个trick而言,如果在队列中有等待事件,那么就会从队列中摘下一个事件并执行。
- 任务队列:是挂在事件循环队列的每个tick(事件