同步阻塞:做一件事,没有拿到结果之前,就一直在这等着,一直等到有结果了,再去做下边的事

异步非阻塞:A调用B,无需等待B的结果,B通过状态,通知等来通知A或回调函数来处理。

任务:一个需要异步执行的函数,执行时机是在主函数执行结束之后、当前宏任务结束之前。

宏任务:宏任务的时间粒度比较大,执行的时间间隔是不能精确控制的,对一些高实时性的需求就不太符合。

常见微任务:

   Promise.then

   MutaionObserver

   Object.observe(已废弃;Proxy 对象替代)

   process.nextTick(Node.js)

 常见宏任务 :

    1. script (可以理解为外层同步代码)

    2. setTimeout/setInterval

    3. UI rendering/UI事件

    4. postMessage,MessageChannel

    5. setImmediate,I/O(Node.js)