一、异步的概念
异步的概念很广泛,下面是百度百科上面摘抄下来的异步定义:
异步:一种通讯方式,对设备需求简单。我们的PC机提供的标准通信接口都是异步的。
异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位。
异步的另外一种含义是计算机多线程的异步处理。与同步处理相对,异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。
但此处需要明确的是:异步与多线程与并行不是同一个概念.
这一系列《异步之路》中,我们只在我们JS编程领域中谈论“异步”。
二、JS中的异步概念
从我开始了解JS开始,就一直有听说过那么几个词:Ajax、Promise,回调函数,单线程,异步操作等等。这一系列东西之间感觉冥冥中都有一定的联系,但是我之前从没有去真正的搞清楚搞懂他们这哥几个,此次我想通过《异步之路》的撰写过程来梳理这方面的知识点,来翻越JS学习过程中的这一座大山。
我在网上查了一些资料,得到了几句私以为十分精辟的话,此处摘抄下来:
(1)异步代码的书写顺序与执行顺序不同。(这并不是异步的定义。另外「书写顺序与执行顺序不同的代码」不一定是异步代码) ——知乎–方应杭
(2)举个例子更好说明,
假如你打电话去书店订书, 老板说我查查, 你不挂电话在等待, 老板把查到的结果告诉你, 这是同步, 如果老板说我查查, 回头告诉你, 你把电话挂了, 这是异步——知乎–马里奥
我们从上面这两