同步阻塞:做一件事,没有拿到结果之前,就一直在这等着,一直等到有结果了,再去做下边的事
异步非阻塞: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)