⊗jsSpPrmSS 174 of 294 menu

Promises in synchrone stijl in JavaScript

Om het probleem van promise hell op te lossen, werd een speciale syntax voor promises bedacht, waardoor asynchrone code veel eenvoudiger geschreven kan worden - in een synchrone stijl.

Laten we beginnen met het bestuderen ervan. Laten we eerst de code uit de vorige les nemen:

function func() { getSmth(2).then(res => { console.log(res); // geeft 4 weer }); } func();

Als onze functie getSmth synchroon was, dan konden we de code van functie func als volgt herschrijven:

function func() { let res = getSmth(2); console.log(res); // geeft 4 weer }

De functie getSmth is echter asynchroon, dus de bovenstaande code zal niet werken. Maar door gebruik te maken van de synchrone stijl van promises, kunnen we iets vergelijkbaars bereiken. Laten we dit doen.

Om te beginnen moeten we onze functie func asynchroon verklaren met behulp van het speciale commando async:

async function func() { }

Hierna kunnen we binnen de functie func het speciale commando await gebruiken. Dit commando, geschreven voor een promise, zorgt ervoor dat JavaScript wacht tot de promise is voltooid. Daarna retourneert het commando het resultaat van de promise, en wordt de uitvoering van de code hervat.

In ons geval moeten we await schrijven voor de aanroep van getSmth. Omdat het resultaat van het aanroepen van deze functie een promise is, zal de verdere uitvoering van de code alleen worden hervat na voltooiing van deze promise. En het resultaat van de promise kan in een variabele worden opgeslagen. Laten we het beschrevene uitvoeren:

async function func() { let res = await getSmth(2); console.log(res); // geeft 4 weer } func();

Laten we getSmth meerdere keren aanroepen:

async function func() { let res1 = await getSmth(2); let res2 = await getSmth(3); console.log(res1 + res2); // geeft 13 weer } func();

En laten we nu getSmth in een lus aanroepen:

async function func() { let arr = [1, 2, 3, 4, 5]; let sum = 0; for (let elem of arr) { sum += await getSmth(elem); } console.log(sum); } func();

Herschrijf de volgende code via de synchrone syntax:

function func() { getSmth(2).then(res1 => { getSmth(3).then(res2 => { getSmth(4).then(res3 => { console.log(res1 + res2 + res3); }); }); }); } func();
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren