Nykyaikainen JavaScript ES6-ES13 (JS-ohje)

Tehokas käyttö Async- ja Await-toimintoja JavaScriptissä

Kaikki oppaan videot Moderni JavaScript ES6:sta ES13:een (JS-ohje)

Ohjelmoinnin maailmassa on tärkeää käsitellä asynkronisia tapahtumia tehokkaasti käyttäjäkokemuksen varmistamiseksi. Erityisesti JavaScriptissä on monia tapoja tehdä tämä. Yksi suosituimmista menetelmistä asynkronisten tapahtumien käsittelemiseen on async/await-rakenteen käyttö. Tämä sisältää syntaktisen yksinkertaistamisen, joka mahdollistaa asynkronisen ohjelmoinnin tekemisen selkeämmäksi ja luettavammaksi. Tarkastellaan tässä oppaassa async- ja await-perusteita ja sitä, kuinka ne voivat parantaa koodisi laatua.

Tärkeimmät havainnot

  • async/await mahdollistaa selkeämmän ja yksinkertaisemman syntaksin asynkronisten tapahtumien käsittelyyn.
  • Jokaisen funktion, joka käyttää await-avainsanaa, on oltava deklaroitu async:ksi.
  • await odottaa tehokkaasti Promisen täyttymistä ennen kuin koodia jatketaan.
  • Virheiden käsittely voidaan toteuttaa elegantisti try/catch-lohkoilla.

Vaiheittainen opas

Ensinnäkin sinun tulisi varmistaa, että ymmärrät Promisten perusteet, sillä async/await perustuu siihen. Kun olet perehtynyt Promisiin, voimme nyt keskustella async/awaitin käytöstä.

Vaihe 1: Viivefunktion luominen

Aloita yksinkertaisella funktiolla, joka palauttaa Promisen, joka simuloi viivettä. Tässä on esimerkki delay-nimisestä funktiosta.

Tämä on perusimplementaatio. Tällä funktiolla voit määrittää viiveen millisekunneissa.

Tehokas käyttö Async- ja Await-toimintoja JavaScriptissä

Vaihe 2: Asyncin ja awaitin esittely

Nyt haluat hyödyntää async/awaitin etuja. Aloita luomalla funktio, joka käyttää async-avainsanaa.

Tässä koodilohkossa runDelay-funktio käyttää async-avainsanaa, mikä mahdollistaa awaitin käytön. Tämä tarkoittaa, että funktion suoritus keskeytetään, kunnes delay-funktiosta palautettu Promise on täytetty.

Vaihe 3: Asynkronisen funktion testaaminen

Testataksesi toimivuutta, kutsu runDelay-funktiota.

Kun suoritat skriptin, näet konsolissa "Aloitetaan viive...", sen jälkeen se pysähtyy 2 sekunniksi ja lopuksi näyttää "Viive päättynyt.".

Vaihe 4: Virheiden käsittely try/catchilla

Tämä tapahtuu usein ohjelmoinnissa – virheitä voi esiintyä milloin tahansa. async/awaitin avulla voit käsitellä virheitä try/catchilla helpommin.

Jos haluat siepata virheitä, voit muokata runDelay-funktiota seuraavasti:

Käyttämällä try/catchia voit siepata ja näyttää kaikki virheet, jotka syntyvät await delay(2000) suorittamisen aikana.

Tehokas käyttö Async- ja Await-toimintoja JavaScriptissa

Vaihe 5: Fetchin käyttäminen async/awaitin kanssa

Toinen yleisesti käytetty tapa on tietojen hakeminen fetch-API:n avulla.

Esimerkissä tehdään verkko-pyyntö fetchin avulla. Voimme jälleen käyttää awaitia varmistaaksemme, että odotamme vastausta ennen kuin jatkamme.

Yhteenveto - Async ja Await: Vaiheittainen opas

Tässä oppaassa olet oppinut, kuinka voit käsitellä asynkronisia tapahtumia selkeämmin JavaScriptin async/await-rakenteen avulla. Olet nähnyt, kuinka luodaan viivefunkio, kuinka käsitellä virheitä ja kuinka hakea tietoja tehokkaasti fetch-API:lla.

Käytä tätä syntaksia tulevissa projekteissasi tehdäksesi koodistasi luettavampaa ja ylläpidettävämpää!

Usein kysytyt kysymykset

Mikä on ero asyncin ja awaitin välillä?async merkitsee funktion asynkroniseksi, mikä tarkoittaa, että se palauttaa Promiseja. awaitia käytetään odottamaan Promisen tulosta.

Milloin sinun tulisi käyttää async/awaitia?Käytä sitä, kun työskentelet asynkronisten tapahtumien parissa ja haluat pitää koodisi selkeänä ja luettavana.

Voinko käyttää async/awaitia kaikissa selaimissa?Kyllä, mutta varmista, että käytettävä selain tukee moderneja JavaScript-syntakseja. Tarvittaessa voidaan käyttää transpilereita kuten Babel.

Voinko käyttää awaitia tavallisessa funktiossa?Ei, jotta voit käyttää awaitia, funktion, jossa sitä käytetään, on oltava deklaroitu asynciksi.

Mitä tapahtuu, jos Promise epäonnistuu?Jos Promise epäonnistuu, se laukaisee virheilmoituksen, joka voidaan käsitellä try/catchilla.