setTimeout时间为0,以及误差的原因

时间为0:
js 是单线程执行的,时间设为 0,就代表立即插入队列,但不是立即执行,仍然要等待前面代码执行完毕
误差:
setTimeout为异步任务,耗时=执行时间+队列中等待时间,等待时间会是event loop产生误差。
注意:另外还有网络延迟等其他因素

解决办法: 递归调用,当前时间-偏移量*运行了几秒 就可以修正误差,使误差最小化