flag放到定时器外面为什么fn就没法执行了?
首先,fn执行的条件是上一个timer结束。flag的作用是判断所有timer是否都完成。timer的每一次循环都需要判断flag的真假,再判断是否执行fn。如果flag放timer外面,就不会去每次判断flag真假也不会执行fn。