同步编程和异步编程

同步编程:

传统的同步编程是一种请求响应模型,调用一个方法,等待其响应返回.

异步编程:

为了避免资源管理等复杂性的问题,

javascript被设计为单线程的语言,即使有了html5 worker,也不能直接访问dom.

javascript 设计之初是为浏览器设计的GUI编程语言,GUI编程的特性之一是保证UI线程一定不能阻塞,否则体验不佳,甚至界面卡死。

一般安卓开发,会有一个界面线程,一个后台线程,保证界面的流畅。

由于javascript是单线程,所以采用异步非阻塞的编程模式,javascript的绝大多数api都是异步api.

本文是本人的一个总结:从Brendan Eich刚设计的初版javascript到现在的ES6,一步步总结javascript异步编程历史。

什么是异步编程

那么什么是异步编程,异步编程简单来说就是:执行一个指令不会马上返回结果而执行下一个任务,而是等到特定的事件触发后,才能得到结果。

同步编程和异步编程
异步编程时就需要指定异步任务完成后需要执行的指令,总的来说有以下几种“指定异步指令”的方式:

属性
回调
Promise
Generator
await,async
下面会一步一步展现各种方式。

指定异步指令参照地址
对异步编程的理解