event-loop 事件轮循
例1 setTimeout ( ( ) => console . log ( 3 ) , 100 ) setTimeout ( ( ) => console . log ( 2 ) ) consold . log ( 1 ) 废话不多我们直入主题。首先 consold.log(1) 会直接输出因为是同步函数,之后会把setTimeout(()=> console.log(2))放入异步队列,之后是setTimeout(()=> console.log(3), 100)放入异步队列( 因为有100毫秒的延迟,所以不在setTimeout(()=> console.log(2))前面 ),然后事件轮询机制会去异步队列里找有没有需要执行的函数,如果有就会放入主进程执行输出一直如此询环直到没有函数可以执行位置,最后输出是 1 2 3 例2 $ . ajax ( { url : 'http://xxxxx' , succes : ( ) => { console . log ( ' 4 ) } } ) setTimeout ( ( ) => console . log ( 3 ) , 500 ) setTimeout ( ( ) => console . log ( 2 ) ) consold . log ( 1 ) 这里多了一个ajax其实就是一个障眼法说白了ajax也是异步代码