Asynkroninen koodi takaisinkutsuilla JavaScriptissä

Oletetaan, että meillä on jokin asynkroninen funktio:

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

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

javascriptmake();
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:

javascriptmake(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:

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

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

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

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