Async ir Await in JavaScript yra galingi raktiniai žodžiai, naudojami asinchroninėms operacijoms atlikti su pažadais. Async funkcijos netiesiogiai grąžina pažadus, o Await pristabdo vykdymą, kol pažadas bus įvykdytas. Tai supaprastina asinchroninį kodą ir pagerina skaitomumą, nes atrodo sinchroninis.
Asinchronizavimo funkcija
Theasync>funkcija leidžia mums parašyti pažadais pagrįstą kodą taip, lyg jis būtų sinchroninis. Tai užtikrina, kad vykdymo gija nebus užblokuota.
- Pažadų tvarkymas : Asinchroninės funkcijos visada suteikia pažadą. Jei grąžinama reikšmė, kuri nėra pažadas, „JavaScript“ automatiškai apverčia ją įvykdytu pažadu.
Asinchroninė sintaksė
async function myFunction() { return 'Hello'; }>Pavyzdys: Čia pamatysime pagrindinį asinchronizavimo naudojimą „JavaScript“.
javascript
const getData = async () =>{ tegul duomenys = 'Sveikas pasaulis'; grąžinti duomenis; } getData().then(duomenys => console.log(data));>>
Išvestis Hello World>
Laukite raktinio žodžio
Theawait>raktinis žodis naudojamas laukti, kol pažadas išsispręs. Jis gali būti naudojamas tik asinchroniniame bloke.
- Vykdymo pauzė : Laukimas verčia kodą laukti, kol pažadas pateiks rezultatą, todėl asinchroninis kodas yra švaresnis ir lengviau valdomas.
Sintaksė
const getData = async () =>{ tegul y = laukti 'Labas, pasauli'; console.log(y); } console.log(1); getData (); console.log(2);>>Išvestis
The laukti raktinis žodis naudojamas asinchronizavimo funkcijoje, norint pristabdyti jos vykdymą ir palaukti, kol pažadas išsispręs, prieš tęsdami.
Asinchronizavimo / laukimo pavyzdys
Čia mes įgyvendinsime kelis metodo pažadus, o tada tą metodą naudosime rezultatui rodyti. Galite patikrinti JS async/wait sintaksė pavyzdyje.
Javascript function asynchronous_operational_method() { let first_promise = new Promise((resolve, reject) =>solve('Sveiki')); tegul second_promise = new Promise((išspręsti, atmesti) => { setTimeout(() => { išspręsti(' techcodeview.com..'); }, 1000); }); let combined_promise = Pažadas.visi([pirmas_pažadas, antras_pažadas]); grąžinti kombinuotą_pažadą; } async function display() { tegul duomenys = laukti asynchronous_operational_method(); console.log(duomenys); } ekranas();>>Išvestis:
Paaiškinimas:
- Pažadas kūrimas :
- Sukuriami du pažadai: vienas iš karto išsprendžia su Hello, o kitas po 1 sekundės su techcodeview.com...
- Pažadų derinimas :
- Metodas Promise.all() sujungia abu pažadus į vieną pažadą, combin_promise.
- Asinchroninė funkcija :
- Funkcija display() deklaruojama kaip asinchroninė, nurodant, kad joje yra asinchroninių operacijų.
- Laukiama pažado sprendimo :
- Laukimo raktinis žodis pristabdo vykdymą, kol bus išspręstas kombinuotas_promise.
- Registravimo rezultatas :
- Išspręstas masyvas iš combined_promise registruojamas konsolėje.
Pastaba
Į išspręsti ir atmesti yra „JavaScript“ iš anksto nustatyti argumentai.
- sprendimo funkcija naudojama, kai baigiama asinchroninė užduotis ir grąžinamas rezultatas.
- atmetimo funkcija naudojama, kai asinchroninė užduotis nepavyksta ir pateikia nesėkmės priežastis.
„Async“ ir „Await“ pranašumai
- Patobulintas skaitomumas : Async ir Await leidžia asinchroninį kodą rašyti sinchroniniu stiliumi, todėl jį lengviau skaityti ir suprasti.
- Klaidų tvarkymas : naudojant try/catch blokus su async/await, klaidų tvarkymas tampa nesudėtingas.
- Išvengia atgalinio pragaro : Async ir Await padeda išvengti įdėtų atgalinių skambučių ir sudėtingų pažadų grandinių.
- Geresnis derinimas : Asinchroninio / laukimo kodo derinimas yra intuityvesnis, nes jis veikia kaip sinchroninis kodas.
Išvada
„Async“ ir „Await“ programoje „JavaScript“ padarė revoliuciją asinchroniniame programavime, todėl kodą būtų lengviau skaityti ir lengviau prižiūrėti. Leisdami asinchroninį kodą rašyti sinchroniniu stiliumi, jie sumažina sudėtingumą, susijusį su atgaliniais iškvietimais ir pažadų grandine. Veiksmingas asinchronizavimo ir laukimo supratimas ir naudojimas gali žymiai pagerinti jūsų JavaScript programavimo įgūdžius, todėl projektuose bus lengviau atlikti asinchronines operacijas.
Palaikomos naršyklės:
JS palaikomos naršyklės Asinchronizavimo / laukimo funkcija yra išvardyti žemiau:
- Google Chrome 55 ir naujesnės versijos
- Firefox 52 ir naujesnės versijos
- Apple Safari 10.1 ir naujesnės versijos
- Opera 42 ir naujesnė versija
- 14 ir aukštesnis kraštas