Javscript async / await

V tej vadnici boste s pomočjo primerov spoznali ključne besede async / await JavaScript.

Ključno asyncbesedo s funkcijo uporabljate za predstavitev, da je funkcija asinhrona funkcija. Funkcija async vrne obljubo.

Sintaksa asyncfunkcije je:

 async function name(parameter1, parameter2,… paramaterN) ( // statements )

Tukaj,

  • ime - ime funkcije
  • parametri - parametri, ki se posredujejo funkciji

Primer: Async Function

 // async function example async function f() ( console.log('Async function.'); return Promise.resolve(1); ) f(); 

Izhod

 Async funkcija.

V zgornjem programu se asyncključna beseda uporablja pred funkcijo, da dokaže, da je funkcija asinhrona.

Ker ta funkcija vrne obljubo, lahko uporabite verižno metodo, then()kot je ta:

 async function f() ( console.log('Async function.'); return Promise.resolve(1); ) f().then(function(result) ( console.log(result) ));

Izhod

 Funkcija asinhronizacije 1

V zgornjem programu je f()funkcija razrešena in then()metoda se izvede.

JavaScript čaka na ključno besedo

Ključna awaitbeseda se uporablja znotraj asyncfunkcije za čakanje na asinhrono operacijo.

Sintaksa za uporabo await je:

 let result = await promise;

Uporaba awaitzaustavi funkcijo asinhronizacije, dokler obljuba ne vrne vrednosti rezultata (razreši ali zavrni). Na primer

 // a promise let promise = new Promise(function (resolve, reject) ( setTimeout(function () ( resolve('Promise resolved')), 4000); )); // async function async function asyncFunc() ( // wait until the promise resolves let result = await promise; console.log(result); console.log('hello'); ) // calling the async function asyncFunc();

Izhod

 Obljuba razrešena pozdravljeni

V zgornjem programu se ustvari Promiseobjekt, ki se po 4000 milisekundah razreši . Tu je asyncFunc()funkcija napisana z uporabo asyncfunkcije.

Ključna awaitbeseda čaka na popolno obljubo (razreši ali zavrni).

 let result = await promise;

Zato se zdravo prikaže šele, ko je spremenljivki rezultata na voljo vrednost obljube.

Če se v zgornjem programu awaitne uporablja, se prikaže pozdrav, preden je Obljuba razrešena.

Delovanje funkcije async / await

Opomba : Uporabljate lahko awaitsamo funkcije asinhronizacije.

Funkcija async omogoča izvedbo asinhrone metode na videz sinhrono. Čeprav je operacija asinhrona, se zdi, da se operacija izvaja sinhrono.

To je lahko koristno, če je v programu več obljub. Na primer

 let promise1; let promise2; let promise3; async function asyncFunc() ( let result1 = await promise1; let result2 = await promise2; let result3 = await promise3; console.log(result1); console.log(result1); console.log(result1); )

V zgornjem programu awaitčaka, da se vsaka obljuba izpolni.

Obravnavanje napak

Med uporabo asyncfunkcije kodo pišete sinhrono. catch()Način lahko uporabite tudi za odkrivanje napake. Na primer

 asyncFunc().catch( // catch error and do something )

Napako lahko odpravite tudi z uporabo try/catchbloka. Na primer

 // a promise let promise = new Promise(function (resolve, reject) ( setTimeout(function () ( resolve('Promise resolved')), 4000); )); // async function async function asyncFunc() ( try ( // wait until the promise resolves let result = await promise; console.log(result); ) catch(error) ( console.log(error); ) ) // calling the async function asyncFunc(); // Promise resolved

V zgornjem programu smo uporabili try/catchblok za obdelavo napak. Če se program uspešno zažene, gre v tryblok. In če program vrne napako, bo šel v catchblok.

Če želite izvedeti več o try/catchpodrobnostih, obiščite JavaScript poskus / ulov JavaScript.

Prednosti uporabe async funkcije

  • Koda je bolj berljiva kot uporaba povratnega klica ali obljube.
  • Obravnavanje napak je preprostejše.
  • Odpravljanje napak je lažje.

Opomba : Ti dve ključni besedi async/awaitsta bili predstavljeni v novejši različici JavaScripta (ES8). Nekateri starejši brskalniki morda ne podpirajo uporabe async / await. Če želite izvedeti več, obiščite podporo za brskalnik async / await JavaScript.

Zanimive Članki...