宏任务与微任务

## 宏任务与微任务
 首先js是单线程的。

 然后我们来看看下面这张图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200805085856783.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTQ5MzM2,size_16,color_FFFFFF,t_70)

 然后我们需要记住,每次浏览器都是执行任务队列里面的代码,执行完毕之后以,会执行微任务,然后执行宏任务。

 浏览器从上往下执行,遇到宏任务就扔到宏任务队列,遇到微任务就扔到微任务队列

 promise就是微任务。定时器就是宏任务

 在重上往下解析代码,遇到定时器的一刻,定时器就开始计时,而不是把定时器扔到任务队列后开始执行再计时

 如果只是单纯的一个promise,后面没有使用then,仅仅是在reject,resolve中写入代码块,这个时候promise是任务队列中,当后面紧接一个then作为回调,这个时候才是把他放到微任务队列

你可能感兴趣的:(JS,javascript,html,google,chrome,es6/es7,队列)