⊗jsSpACInr 155 of 294 menu

Asünkroonne kood koos tagasikutsetega JavaScriptis

Oletame, et meil on mingi asünkroonne funktsioon:

function make() { setTimeout(function() { console.log('1'); }, 3000); }

Oletame, et me kasutame seda funktsiooni järgmisel viisil:

make(); console.log('2'); // täidetakse esimesena

Oletame, et me tahame teha nii, et teine väljund konsooli täidetakse peale seda, kui asünkroonne operatsioon funktsiooni sees on lõpetatud. Üks lähenemisviise, mida selleks kasutatakse, on tagasikutse kasutamine: mähime ootava koodi anonüümsesse funktsiooni ja edastame selle parameetrina funktsioonile make:

make(function() { console.log('2'); });

Loomulikult ei lahenda see iseenesest meie ülesannet. Seni oleme lihtsalt teinud järgmise kokkuleppe: soovides koodi täita peale funktsiooni make käivitamist, edastage see kood tagasikutse funktsiooni make väljakutses.

Parandame funktsiooni make koodi nii, et see hakkaks töötama vastavalt meie kokkuleppele:

function make(callback) { setTimeout(function() { console.log('1'); // mingi asünkroonne operatsioon, võib olla mitte üks callback(); // siis meie tagasikutse }, 3000); }

Kirjelda, millises järjekorras kuvatakse numbrid konsoolis:

function make(callback) { setTimeout(function() { console.log('1'); callback(); }, 3000); } make(function() { console.log('2'); console.log('3'); });
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu