一、什么是宏任务和微任务
js的逻辑执行机制是先执行同步的任务再执行异步的任务,而任务又分为宏任务和微任务,那么就是先执行微任务再执行宏任务。
二、异步和单线程
像这种情况new promise就是同步,它的回调就是异步。
1)所有的同步任务都在主线程上执行,行成一个执行栈。
2)除了主线程之外,还存在一个任务列队,只要异步任务有了运行结果,就在任务列队中植入一个时间标记。
3)主线程完成所有任务(执行栈清空),就会读取任务列队,先执行微任务队列在执行宏任务队列。
异步和单线程是相辅相成的,js是一门单线程脚本语言,所以需要异步来辅助
异步和同步的区别:
- 异步不会阻塞程序的执行,
- 同步会阻塞程序的执行,