Asynkron utførelse i JavaScript

Asynkron utførelse i JavaScript
På mange programmeringsspråk håndteres asynkrone prosesser ved å generere en ny tråd som fungerer i bakgrunnen. I JavaScript har vi imidlertid et konsept som heter Execution Context and Event Loop, som forhindrer at resten av koden kjører. Når utførelseskonteksten oppdager slike kodeblokker i et program, sender den dem tilbake til hendelsessløyfen for utførelse før de returnerer dem til anropsstabelen. Det er tre grunnleggende typer asynkrone kodemetoder i JavaScript -programmering: tilbakeringinger, løfter og asynk.

Denne oppskrivningen vil diskutere Asynkron utførelse i JavaScript. Videre vil vi også demonstrere JavaScript -metodene for å utføre asynkron utførelse, for eksempel Tilbakeringinger, Løfter, async/avventer, Ved hjelp av eksempler. Så la oss starte!

Tilbakeringinger med asynkron utførelse i JavaScript

Tilbakeringinger er en av de vanligste kodestilene for å uttrykke og håndtere asynkron utførelse i JavaScript. Det er en type funksjon som må kalles etter at en annen funksjon har fullført utførelsen. Tilbakeringingsfunksjonen påkalles med responsen når den spesifiserte operasjonen blir fullført. Anta at du vil sikre at et bestemt stykke kode i JavaScript -programmet ikke kjøres før den andre er ferdig med utførelsen. I så fall kan du oppnå denne funksjonaliteten ved å bruke tilbakeringingsfunksjonen.

Eksempel: tilbakeringinger med asynkron utførelse i JavaScript

La oss gi deg et eksempel som vil hjelpe deg med det vi har sagt. Vurder et scenario der du må skrive en streng til en dokumentstrøm etter 7 sekunder. I dette tilfellet kan du bruke "setTimeout ()”JavaScript innebygd funksjon som evaluerer et uttrykk eller kaller hvilken som helst funksjon etter en spesifikk tid. I vårt tilfelle har vi benyttet oss av "setTimeout ()" -funksjonen for å påkalle de definerte "MyFunction ()”Etter 7 sekunder:




Vent i 7 sekunder (7000 millisekunder)




Du kan utføre det ovennevnte eksemplet i din favorittkodeditor eller hvilken som helst online kodende sandkasse,; Imidlertid vil vi bruke JSBIN til demonstrasjonsformålet:

Etter å ha utført det oppgitte JavaScript -programmet, vil du bli bedt om å vente på “7 sekunder”:

Etter 7 sekunder, strengen “Asynkron utførelse i JavaScript”Vil bli vist som utgang:

Løfter med asynkron utførelse i JavaScript

Når du kjeder flere funksjonssamtaler sammen, er et av de primære problemene med tilbakeringingene at det blir vanskelig å spore strømmen av utførelsen. “.deretter()”Syntaks i“Løfter”Redder deg i en slik situasjon mens du tillater deg å kjede løfter sammen. Det lar deg koble håndterere med den ekstra asynkrone verdien av suksessen eller årsaken til feilen. Som et resultat vil de asynkrone metodene oppføre seg på samme måte som synkrone.

I stedet for å gi den endelige verdien umiddelbart, returnerer den asynkrone teknikken et løfte som gir verdien som kan brukes i videre behandling. Løftens objekt kan være i en av de tre statene: i påvente, oppfylt eller avvist:

  • Avventer: Før en operasjon oppstår, er det ekstra løftet i en verserende tilstand.
  • Oppfylt: Den oppfylte tilstanden til et løfte betyr at den ekstra operasjonen er fullført.
  • Avvist: Når en feilverdi blir kastet for den ufullstendige operasjonen, kommer løftet under den avviste staten.

Eksempel: Løfter med asynkron utførelse i JavaScript

For å vise arbeid med løfter med asynkron utførelse i JavaScript, for det første, vil vi definere et “Vis melding()”Funksjon som vil bli påkalt både for suksess og fiasko i det ekstra løftet:






Utførelse av den ovennevnte koden vil vise deg følgende utdata:

Nå, med vilje, vil vi endre verdien av variabel “en”For å sjekke om tilbakeringingen for svikt i løftet fungerer eller ikke:

Som du kan se, viser tilbakeringingen for feilen "Feil oppstått”Streng i henhold til vår JavaScript -programkoding:

async/vent med asynkron utførelse i JavaScript

async”Og“avvente”Nøkkelord legges til den nyere versjonen av JavaScript. Disse nøkkelordene gjør det lettere å skrive løfter og tillater brukeren å ha full kontroll over sekvensen av løfter utførelse. Async -funksjonen returnerer alltid løfter, og avventefunksjonen brukes i async -funksjonen for å stoppe utførelsen av den ekstra metoden mens du venter på at løftet skal løse. Etter det vil det gjenoppta funksjonens utførelse og sende ut den løste verdien.

Eksempel: Asynk med asynkron utførelse i JavaScript

Nå, i samme eksempel, vil vi legge til en async myfunction () som gir et løfte:






Ta en titt på den medfølgende koden og dens utdata:

Eksempel: Vent med asynkron utførelse i JavaScript

I dette eksemplet vil vi først legge til "async”Nøkkelord med definisjonen av showMessage () Funksjonen for å sende ut et løfte. Etter å ha gjort det, vil vi spesifisere “avvente”Med det skapte”MyPromise”Objekt slik at det vil vente på MyPromise:






Her er utgangen vi fikk fra å utføre det ovennevnte eksemplet:

Konklusjon

Tilbakeringinger, løfter og asynk. Tilknytning muliggjør tilgang til funksjonene når den asynkrone metoden har fullført utførelsen; Løfter hjelper til. Denne oppskrivningen diskuterte asynkron utførelse i JavaScript. Videre demonstrerte vi også metodene for asynkron utførelse som tilbakeringinger, løfter, async/avventer i JavaScript med eksempler.