JavaScript teče na enem nitju, zato lahko naenkrat počne samo eno stvar. Event loop je tisto, kar mu omogoča obravnavo asinkronega dela brez blokade: poganja call stack, in ko je stack prazen, potegne callbacks iz redov čakanja.
Obstajata dve vrsti redov čakanja z različnimi prioritetami:
