原理:
在call stack里面同步执行代码,遇到异步会将其放入callback queue,在继续执行下一步。同步代码执行完成后启动eventloop,查看callbackqueue是否为空,不为空则将其移入到call stack执行。为空则启动eventloop
为什么会有eventloop?
1、js是单线程,代码只能一步一步往下执行,遇到需要等待的会阻塞运行。2、异步通过回调能解决这个问题。3、回调的原理是基于eventloop机制。
应用:
1、dom事件。比较特殊,不是异步,但是使用回调,基于event loop机制。
2、网络请求、图片加载
3、定时任务