首先,我们必须明确一个概念:
<mark>JS是单线程的</mark>
其次,
<mark>JS是有异步的</mark>
js的异步分 微任务
、宏任务
<mark>主线任务执行完,js会到微任务列表找任务,找不到了再到宏任务里面找</mark>
其中,Promise 的任务是 微任务
# 定时器的误区
延时时间不放在 宏任务里面,
也就是
如果定延时时间1s
而且主线程和微任务执行时间大于1s
轮到定时器时候,定时器的回调方***立即执行
# 证明 js 是单线程
除了看 标准原文
下面代码也直观看出来
(无论执行多少次,结果肯定不变【不可能出现1、1的情况】)