理解js单执行绪&非同步运行机制
由于js为单执行绪,也就是一次只处理一件事情并依序执行,但倘若遇到执行时间较久的程式,就会造成阻塞(全天下就都等你一个),因此有了非同步的处理机制。

Event Loop
Event Loop 的机制如何使 Javscript 达到非同步呢?
首先 Stack 会执行事件而当这个事件是 WebAPI 的时候,浏览器会执行这个 WebAPI 且结束并离开而 WebAPI 挟带的 callback function 不会马上被执行,直到 WebAPI 触发完条件后 被放入 Callback Queue。最后直到 Stack 清空时,Callback Queue 里的 callback function 才会进到 Stack 里被执行。