Idag har vi kikat på hur man kan använda de nya async/await nyckelorden som kom i ES8, och de låter oss skriva vår asynkrona promise-baserade kod som om den vore synkron kod. I grund och botten är det fortfarande promises, så detta är bara en annan syntax för att skriva samma sak.

Som jag betonade idag så förekommer båda (även XMLHttpRequest och callbacks förekommer fortfarande 😅), och det viktigaste är att göra det som känns mest intuitivt för er! Den andra delen kan ni alltid lära er sen när t.ex. Promises känns som en naturlig del.

Vi skrev om Random User-uppgiften från igår till att använda async/await, och därefter gjorde vi en helt ny uppgift där vi skapade ett konto hos RapidAPI (som är en slags ”hubb” av många olika API:er) och nyttjade deras JokeAPI för att skriva en enkel sida som hämtar ut programmerings-relaterade skämt (så klart 😀).

Förutom ovan så tittade vi lite kort på hur man kan ”kasta ett fel” (throw an error) om t.ex. response.ok är false, och det gör vi då med

throw new Error('Some error message.');

och sen kan vi ”fånga felet” (catch the error) i vårt promise’s .catch()-metod.

Relevanta delar från Udemy-kursen är kapitel 97-98 från kapitel 12 i Udemy-kursen Modern JavaScript (from Novice to Ninja):

  • 97. Async & await [11 min]
  • 98. Throwing & Catching Errors [5 min]

Länkar

How to use Async Await in JavaScript

https://medium.com/javascript-in-plain-english/async-await-javascript-5038668ec6eb

A Beginner’s Guide to Async/Await in JavaScript

https://itnext.io/a-beginners-guide-to-async-await-in-javascript-97750bd09ffa

Understanding async-await in Javascript

https://hackernoon.com/understanding-async-await-in-javascript-1d81bb079b2c

JavaScript ES 2017: Learn Async/Await by Example

https://codeburst.io/javascript-es-2017-learn-async-await-by-example-48acc58bad65


Workshop

Ingen workshop idag, vi gjorde JokeAPI-uppgiften tillsammans och därefter den nya inlämningsuppgiften.


Till nästa lektion

Kolla också på video 97-98 från kapitel 12 i Udemy-kursen Modern JavaScript (from Novice to Ninja) för repetition av dagens lektion:

  • 97. Async & await [11 min]
  • 98. Throwing & Catching Errors [5 min]