输出顺序ADCB,为什么延时器优先于读文件?

输出顺序ADCB,为什么延时器优先于读文件?
js单线程执行,读文件操作先加载到宿主环境中去,延时器后加载到宿主环境中,在宿主环境中二者谁先执行?为什么?
img

AD没有异步延时是直接在主线程中执行。
读取文件是异步进行的,文件读取完毕后才异步进行then中的回调函数。
setTimeout()0延时 是等当前程序线程执行完之后立即重新建立一个新的程序线程来异步执行。
而读取文件所用的时间一般是比setTimeout()0延时慢。
所以延时器优先于读文件

因为读取文件需要更多是时间,这个是异步执行,并不是同步。