js事件循环机制
事件循环概念:
1,js是单线程,防止代码阻塞,把代码分为:同步代码和异步代码;
2,同步代码给js引擎执行,异步代码交给宿主环境;
3,同步代码放入执行栈中,异步代码等待时机成熟送入任务队列;
4,执行栈执行完毕,会去任务队列看是否有异步任务,有就送到执行栈中执行,反复循环查看执行,这个过程就是事件循环(eventloop);
宏任务和微任务:
宏任务:script(代码块)、setTimeout/setInterval定时器、setImmdiate定时器等等
微任务:process.nextTick(node)、promise.then()/catch()、async/await、Object.observe等等
微任务跟着当前宏任务后面执行,直到到下一个宏任务开始。