-
所有同步任务都在主线程上执行,形成一个执行栈
-
主线程之外,还存在一个“任务队栈”,只要异步任务有了运行结果,就在“任务队列”之中放置一个事件
-
一旦”执行栈“中的所有同步任务执行完毕,系统就会读取”任务队列“,看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入”执行栈“,开始执行
-
主线程不断重复上面的第三步
主线程从“任务队列”中读取事件,这个过程是循环不断的,所以整个的这种运行机制又称为Event Loop(事件循环)。只要主线程空了,就会去读取“任务队列”,这就是JavaScript的运行机制