Zanemarimo za sada Web Apis i Callback Queue kvadrate
Spori kôd je predvidiv i konzistentno spor, može se popraviti direktnom intervencijom programera
I/O operacije ovise o drugim faktorima na koje programer ne može uvijek utjecati
Kôd iz primjera sa prošlog slide-a
Ne možemo predvidjeti koliko dugo će trajati HTTP request, ne želimo da za to vrijeme ne radi UI
Dobro objašnjenje ovog koncepta se nalazi ovdje: http://www.michael-richardson.com/processes/rup_for_sqa/core.base_rup/guidances/concepts/concurrency_EE2E011A.html#Asynchronous%20vs.%20synchronous%20interaction
Non-blocking operacije se izvršavaju kroz WEB API i ne idu na call stack
Sve WEB API funkcije i metode primaju tzv. callback funkcije koje se šalju na tzv. Queue kad WEB API obavi svoj zadatak
Event loop određuje kako i kada će se poruke u Queue-u procesuriati
Činjenica da su dio preglednika, a ne JavaScripta, je ono što omogućava istovremenost: preglednici su multi-threaded