⊗jsSpACInr 155 of 294 menu

Asinhrona koda s povratnimi klici v JavaScript

Recimo, da imamo neko asinhrono funkcijo:

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

Recimo, da to funkcijo uporabimo na naslednji način:

make(); console.log('2'); // se bo izvedel prvi

Recimo, da želimo narediti tako, da se drugi izpis v konzolo izvede šele po tem, ko se izvede asinhrona operacija znotraj funkcije. En od pristopov, ki se uporablja za to, je uporaba povratnega klica: ovijmo kodo, ki čaka, v anonimno funkcijo in jo posredujemo kot parameter funkciji make:

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

Seveda samo po sebi to ne bo rešilo naše naloge. Za zdaj smo samo sklenili naslednje dogovor: če želite izvesti kodo po zagonu make, posredujte to kodo kot povratni klic v klic make.

Popravimo kodo funkcije make tako, da bo začela delovati v skladu z našim dogovorom:

function make(callback) { setTimeout(function() { console.log('1'); // neka asinhrona operacija, morda ne ena sama callback(); // nato naš povratni klic }, 3000); }

Povejte, v kakšnem vrstnem redu se bodo izpisale številke v konzolo:

function make(callback) { setTimeout(function() { console.log('1'); callback(); }, 3000); } make(function() { console.log('2'); console.log('3'); });
Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni