在主线程上一次执行,形成一个执行栈。
进入任务列队,当主线程的执行完毕,就会从任务列队中取出放到主线程执行。然后执行完毕,在获取,在执行。这个过程叫事件循环( event loop )
任务分为宏任务( MacroTask )和微任务( MicroTask )。
宏任务( Task )由宿主发起。有: setTimeout 、 setInterval 、 Ajax 、 Dom
微任务
微任务( Jobs )由 js 发起。有: Promise 、 async/await
微任务比宏任务执行要早