04月08, 2020

js宏任务与微任务

微任务与宏任务 * 宏任务主要包含:script(整体代码)、setTimeout、setInterval、I/O、UI交互事件、setImmediate(Node.js 环境); * 微任务主要包含:Promise、MutaionObserver、process.nextTick(Node.js 环境);

我们的JavaScript的执行过程是单线程的,所有的任务可以看做存放在两个队列中——执行队列和事件队列。 执行队列里面是所有同步代码的任务,事件队列里面是所有异步代码的宏任务,而我们的微任务,是处在两个队列之间。 当JavaScript执行时,优先执行完所有同步代码,遇到对应的异步代码,就会根据其任务类型存到对应队列(宏任务放入事件队列,微任务放入执行队列之后,事件队列之前);当执行完同步代码之后,就会执行位于执行队列和事件队列之间的微任务,然后再执行事件队列中的宏任务。

本文链接:http://zb.qinkeji.cn/post/js-hong-ren-wu-yu-wei-ren-wu.html

-- EOF --

Comments