同步编程和异步编程
同步编程:
传统的同步编程是一种请求响应模型,调用一个方法,等待其响应返回.
异步编程:
为了避免资源管理等复杂性的问题,
javascript被设计为单线程的语言,即使有了html5 worker,也不能直接访问dom.
javascript 设计之初是为浏览器设计的GUI编程语言,GUI编程的特性之一是保证UI线程一定不能阻塞,否则体验不佳,甚至界面卡死。
一般安卓开发,会有一个界面线程,一个后台线程,保证界面的流畅。
由于javascript是单线程,所以采用异步非阻塞的编程模式,javascript的绝大多数api都是异步api.
本文是本人的一个总结:从Brendan Eich刚设计的初版javascript到现在的ES6,一步步总结javascript异步编程历史。
什么是异步编程
那么什么是异步编程,异步编程简单来说就是:执行一个指令不会马上返回结果而执行下一个任务,而是等到特定的事件触发后,才能得到结果。
异步编程时就需要指定异步任务完成后需要执行的指令,总的来说有以下几种“指定异步指令”的方式:
属性
回调
Promise
Generator
await,async
下面会一步一步展现各种方式。