⊗jsSpACInr 155 of 294 menu

Asynkroninen koodi takaisinkutsuilla JavaScriptissä

Oletetaan, että meillä on jokin asynkroninen funktio:

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

Oletetaan, että käytämme tätä funktiota seuraavasti:

make(); console.log('2'); // suoritetaan ensimmäisenä

Oletetaan, että haluamme tehdä niin, että toinen konsoliin tulostus suoritetaan vasta sen jälkeen, kun asynkroninen operaatio funktion sisällä on suoritettu. Yksi tähän käytetyistä tavoista on takaisinkutsun käyttö: käärimme odottavan koodin anonyymifunktioon ja välitämme sen parametrina funktiolle make:

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

Tämä ei tietenkään itsessään ratkaise tehtäväämme. Toistaiseksi olemme vain sopineet: jos haluat suorittaa koodin make-funktion laukeamisen jälkeen, väitä tämä koodi takaisinkutsuna make-kutsun parametriksi.

Korjataan funktion make koodi niin, että se alkaa toimia sopimuksen mukaisesti:

function make(callback) { setTimeout(function() { console.log('1'); // jokin asynkroninen operaatio, ei välttämättä vain yksi callback(); // sitten meidän takaisinkutsumme }, 3000); }

Kerro, missä järjestyksessä numerot tulostuvat konsoliin:

function make(callback) { setTimeout(function() { console.log('1'); callback(); }, 3000); } make(function() { console.log('2'); console.log('3'); });
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää