Async og Await in JavaScript er kraftfulde nøgleord, der bruges til at håndtere asynkrone operationer med løfter. Async-funktioner returnerer implicit løfter, mens Await sætter udførelsen på pause, indtil løftet er løst. Dette forenkler asynkron kode og forbedrer læsbarheden ved at få den til at fremstå synkron.
Asynkron funktion
Detasync>funktion giver os mulighed for at skrive løftebaseret kode, som om den var synkron. Dette sikrer, at udførelsestråden ikke blokeres.
mark zuckerberg uddannelse
- Løftehåndtering : Asynkrone funktioner returnerer altid et løfte. Hvis der returneres en værdi, der ikke er et løfte, pakker JavaScript den automatisk ind i et løst løfte.
Asynkron syntaks
async function myFunction() { return 'Hello'; }>Eksempel: Her vil vi se den grundlæggende brug af async i JavaScript.
javascript
const getData = async () =>{ lad data = 'Hej verden'; returnere data; } getData().then(data => console.log(data));> Produktion
Hello World>
Afvent søgeord
Detawait>søgeord bruges til at vente på, at et løfte løses. Det kan kun bruges inden for en asynkron blok.
- Udførelsespause : Await får koden til at vente, indtil løftet returnerer et resultat, hvilket giver mulighed for renere og mere håndterbar asynkron kode.
Syntaks
let value = await promise;>
Eksempel : Dette eksempel viser den grundlæggende brug af søgeordet afvent i JavaScript.
javascript const getData = async () =>{ lad y = afvente 'Hej verden'; console.log(y); } console.log(1); getData(); console.log(2);> Produktion
1 2 Hello World>
Det asynkron nøgleord omdanner en almindelig JavaScript-funktion til en asynkron funktion, hvilket får den til at returnere et løfte.
Det vente nøgleordet bruges inde i en async-funktion til at sætte udførelsen på pause og vente på, at et løfte løses, før det fortsætter.
scanner java
Eksempel på asynkron/afvent
Her vil vi implementere flere løfter i en metode, og så vil vi bruge den metode til at vise vores resultat. Du kan tjekke JS asynkron/afvent syntaks i eksemplet.
Javascript function asynchronous_operational_method() { let first_promise = new Promise((resolve, reject) =>resolve('Hej')); lad second_promise = new Promise((løse, afvise) => { setTimeout(() => { resolve(' techcodeview.com..'); }, 1000); }); lad combined_promise = Promise.all([første_løfte, andet_løfte]); returner combined_promise; } asynkron funktion display() { lad data = afvente asynkron_operationel_metode(); console.log(data); } Skærm();> Produktion:
0,06 som en brøkdel
[ 'Hello', ' techcodeview.com..' ]>
Forklaring:
- Løfte skabelse :
- To løfter oprettes: det ene løses med det samme med Hello, og det andet løses efter 1 sekund med techcodeview.com...
- Kombinere løfter :
- Promise.all()-metoden kombinerer begge løfter til et enkelt løfte, combined_promise.
- Asynkron funktion :
- Display()-funktionen er erklæret som asynkron, hvilket indikerer, at den indeholder asynkrone operationer.
- Afventer løfteopløsning :
- Nøgleordet await sætter udførelsen på pause, indtil combined_promise er løst.
- Logningsresultat :
- Det løste array fra combined_promise logges til konsollen.
Bemærk
Til beslutte og afvise er foruddefinerede argumenter af JavaScript.
- resolve-funktionen bruges, når en asynkron opgave er fuldført og returnerer resultatet.
- afvisningsfunktionen bruges, når en asynkron opgave fejler og returnerer årsager til fejl.
Fordele ved Async og Await
- Forbedret læsbarhed : Async og Await gør det muligt at skrive asynkron kode i en synkron stil, hvilket gør det lettere at læse og forstå.
- Fejlhåndtering : Brug af try/catch-blokke med async/await gør fejlhåndtering ligetil.
- Undgår Callback Hell : Async og Await hjælper med at undgå indlejrede tilbagekald og komplekse løftekæder.
- Bedre debugging : Fejlretning af asynkron/vent kode er mere intuitiv, da den opfører sig som synkron kode.
Konklusion
Async og Await in JavaScript har revolutioneret asynkron programmering ved at gøre koden mere læsbar og vedligeholdelig. Ved at tillade asynkron kode at blive skrevet i en synkron stil, reducerer de kompleksiteten forbundet med tilbagekald og lover kæde. Forståelse og brug af asynkron og afvent effektivt kan forbedre dine JavaScript-programmeringsfærdigheder betydeligt, hvilket gør det nemmere at håndtere asynkrone operationer i dine projekter.
Understøttede browsere:
De browsere, der understøttes af JS Async/Await-funktion er anført nedenfor:
- Google Chrome 55 og nyere
- Firefox 52 og nyere
- Apple Safari 10.1 og nyere
- Opera 42 og nyere
- Kant 14 og derover