Asynkron JavaScript

Synkron programmering

console.log("Statement 1"):

console.log("Statement 2"):

console.log("Statement 3"):

Kod läses rad för rad, uppifrån och ner. När en funktion är klar, kör nästa.

En del rutiner tar tid. Exempel HTTP-requests eller hämta från databas. Hur hantera detta?

Problemet 

En kö av instruktioner/funktioner

sånt som blockar!

Single-threaded

Javascript/Node.js är 

Statement 1

Statement 2

Statement 3

Statement 4

HTTP REQUEST

🕰

HÄMTA FRÅN DB

🕰

BLOCKERANDE 👎

Asynkront!

Vår räddning...  

Statement 1

Statement 2

Statement 3

CALLBACK

HTTP REQUEST

🕰

ICKE-BLOCKERANDE 👍 

HTTP REQUEST

Starta exekveringen nu, men avsluta senare

"BAKGRUNDEN"

Asynkron Javascript

Single-thread

Här ska vår kod köras.

Bara en tråd.

👨‍💻

👩‍🎤

🕵️‍♀️

🧙‍♂️

Läsa stor fil

Login

Streama

Requesta ngt

"Bakgrunden"

Här ska tidskrävande proccesser köras!

Obs! Förenklad version 🙀

när klar

När är async bra?

När saker måste ske i viss ordning

  1. Hämta data
  2. Göra något med datan
  3. Uppdatera gränsnittet

Typ det vi vill göra 👩‍💻

Problemet med Callbacks

Demo

Leder till snårig kod. Kallas Callback Hell.

Don't go there😈

Asynkrona metoder

  1. callbacks
  2. promises
  3. async functions

Till vår räddning 🤩

Kan ff användas i mindre omfattning...

Vill du veta mer hur det funkar i bakgrunden?

Asynkron Javascript

By sandra-larsson

Asynkron Javascript

Vad en callback-funktion är och hur man använder dem.

  • 55