宏任务包括:setTimeout setIntervalAjaxDOM事件, 宏任务是由宿主(浏览器、Node)发起的,宏任务,可以理解为每次执行栈执行的代码就是一个宏任务(包括每次从事件队列中获取一个事件回调并放到执行栈中执行).进程的切换肯定是宏任务,因为需要花费大量的资源 二. 什么是微任务(MicroTask) 微任务包括:Promise async/await ...
执行顺序: 宏任务 > 微任务 > 宏任务 > 微任务 javascript 是单线程的, 在执行js代码的时候, 全局的js代码是个宏任务, 遇到同步的就执行,异步的就分别放入对应的任务队列中去; 等到全局的js代码的同步执行完成后,就开始找微队列里的微任务,等到微任务执行完成后,才开始执行宏队列的宏任务;...
1.宏任务:当前调用栈中执行的代码成为宏任务。(主代码快,定时器等等)。 2.微任务:当前(此次事件循环中)宏任务执行完,在下一个宏任务开始之前需要执行的任务,可以理解为回调事件。(promise.then,proness.nextTick等等)。 3.宏任务中的事件放在callback queue中,由事件触发线程维护;微任务的事件放在微任务队列中,由...
可以这样理解 只有promise是微任务(还有其他的不常用),其他的都是宏任务 有一个队列,js执行,点击事件,setTimeout都是往队列里推一条任务,这就是你说的宏任务 在每个宏任务执行完成后会调用:本轮被加入进去的微任务 然后下一个宏任务 console.log('task 1') Promise.resolve().then(() => { console.log('...
可以这样理解 只有promise是微任务(还有其他的不常用),其他的都是宏任务 有一个队列,js执行,点击事件,setTimeout都是往队列里推一条任务,这就是你说的宏任务 在每个宏任务执行完成后会调用:本轮被加入进去的微任务 然后下一个宏任务 console.log('task 1') Promise.resolve().then(() => { console.log('...
每处理一个经济舱乘客,工作人员就要瞥一眼头等舱队伍是否有人来了,如果有人,就要转到头等舱这边先处理。直到头等舱这边队伍空了,才能再回过头来处理经济舱的乘客。 至于什么 API 注册的是宏任务,什么 API 会是微任务,你可以详细去查一下。 本质就是为了区分任务的优先级。 有用1 回复 查看全部 2 个回答...