为什么timer()会在循环之后执行

有没有办法让他在循环之前运行

 var i = 1;
setTimeout( function timer(){
        console.log( i );
    }, 0 );
for(;i < 5000; i++)
  console.log('aaa');

在定时器执行完成之后加个状态。
用promise实现的方法

 new Promise((resolve,reject )=>{
   var i=1;
   setTimeout( function timer(){
        console.log( i );
        resolve(i)
   }, 0 )
}).then((i)=>{
   for(;i < 5000; i++)
   console.log('aaa');
})

因为setTimeout或者setInterval会等待主程序执行完再执行,也就是等待for循环之后才执行。

取系统当前时间 在+上那你在让他多少时间后出现 就行行了