Citat:
Ursprungligen postat av
svettigafettsvinet
Det jag egentligen behöver lösa är att jag vill kunna jobba synkront.
Om du vill att hela din applikation ska frysa sig när du hämtar data från externa källor så är promises vad du
inte ska använda.
Om du vill att applikationen ska fungera som vanligt även när data hämtas så behöver du jobba asynkront. Detta är inget specifikt för javascript, utan gäller för alla språk.
Citat:
Ursprungligen postat av
svettigafettsvinet
Men i och med att javascript är asynkront
Javascript är inte asynkront. Men det tillåter dig att jobba asynkront om du vill. Likt de flesta andra språk
Citat:
Ursprungligen postat av
svettigafettsvinet
T.ex. jag hämtar en sak från en databas eller liknande med en metod i steg 1. Men i och med att javascript är asynkront så börjar den på steg2 innan steg1 är färdig och värdena hämtade vilket resulterar i errors. Detta måste vara ett oerhört vanligt problem som måste ha någon sorts standardlösning.
Du har två alternativ:
1. Jobba synkront. Alltså frys hela applikationen så att den inte går att använda medan data hämtas.
2. Jobba asynkront. Alltså fortsätt att köra alla andra funktioner medan data hämtas.
Standardlösningen är att jobba asynkront. Ofta via den Promises, som är helt okej.
Om du vill att steg2 ska utföras först när steg1 är klart så sätter du det i Promisets then-funktion