js 中同步任务,异步任务,微任务宏任务中的关系是什么

在 JavaScript 中,同步任务和异步任务并行执行,但是执行顺序可能会不同。同步任务会直接进入主线程执行,而异步任务则会先进入 Event Loop 队列。Event Loop 是一个负责监听异步任务的事件队列,一旦异步任务完成(如网络请求完成),Event Loop 就会将该回调函数加入到一个待执行的任务队列中,等待主线程空闲时取出执行。

微任务和宏任务都是异步任务。微任务通常是指在一个宏任务执行完毕后立即执行的一个特殊的异步任务,例如 Promise 的 then 回调函数。当 Promise 状态变更为 resolved(或 rejected)时,其 then 回调函数会被加入微任务队列中。而宏任务则通常包括 setTimeout、setInterval、setImmediate、requestAnimationFrame 或者 I/O 操作等任务。宏任务的执行时机是在微任务队列执行完毕后再执行的。

总的来说,异步任务被加入 Event Loop 队列中,等待主线程空闲时再执行。微任务是在当前宏任务执行完毕后立即执行的任务,而宏任务则通常是等待所有微任务执行完毕后再执行的任务。

猜你喜欢

转载自blog.csdn.net/qq2468103252/article/details/130948158