Node.js-taustakehityksen bootcamp · Oppitunti

Asynkroninen JavaScript ja tapahtumasilmukka

Opitte ymmärtämään asynkronisen ohjelmoinnin malleja, callback-funktioita, Promiseja, async/awaitia ja Node.js:n tapahtumasilmukkaa.

Oppitunti 3/412 vaihetta

Asynkroninen JavaScript ja tapahtumasilmukka on ilmainen Node.js-taustakehityksen bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Node.js-taustakehityksen bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Node.js-taustakehityksen bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä asynkroninen koodi on?

Asynkroninen koodi antaa Noden aloittaa hitaankin tehtävän — kuten tiedoston lukemisen tai verkkokutsun — ja jatkaa muun koodin suorittamista estämättä pääsäiettä.

Synkroninen ja asynkroninen toiminta

Ajattele kokkia: synkroninen toiminta tarkoittaa joutilaana seisomista veden kiehuessa, kun taas asynkroninen toiminta tarkoittaa vihannesten pilkkomista samalla. Node kokkaa asynkronisen kokin tavoin.

Callback-malli

Callback-funktiot ovat funktioita, jotka välität suoritettaviksi myöhemmin — tämä on perinteinen tapa käsitellä asynkronisia tehtäviä. Kun tehtävä valmistuu, callback-funktiota kutsutaan tuloksen tai virheen kanssa.

Yksinkertainen callback käytännössä

setTimeout on oppikirjaesimerkki asynkronisesta toiminnosta: se odottaa määritetyn ajan ja suorittaa sitten sille välittämäsi callback-funktion.

function greet(name, callback) {
  setTimeout(() => {
    const message = `Hello, ${name}!`;
    callback(message);
  }, 1000); // Wait 1 second
}

function displayMessage(msg) {
  console.log(msg);
}

greet("Coddy", displayMessage);
console.log("Waiting for greeting...");

Callback Hellin haaste

Monien toisistaan riippuvien callback-funktioiden sisäkkäisyys synnyttää Callback Hellin — syvästi sisennettyä ja vaikeasti luettavaa koodia, jossa virheenkäsittelystä ja ylläpidosta tulee painajaismaista.

Promise-olion esittely

Promise edustaa arvoa, joka saapuu nyt, myöhemmin tai ei koskaan. Se on yhdessä kolmesta tilasta: pending, fulfilled tai rejected.

Promise-olioiden käyttäminen

Käsittele Promise-olion onnistuminen .then()-menetelmällä ja virheet .catch()-menetelmällä — ketjutus on selkeämpää kuin sisäkkäiset callback-funktiot.

function fetchData(shouldSucceed) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (shouldSucceed) {
        resolve("Data fetched successfully!");
      } else {
        reject("Failed to fetch data.");
      }
    }, 1000);
  });
}

fetchData(true)
  .then(data => console.log(data))
  .catch(error => console.error(error));

fetchData(false)
  .then(data => console.log(data))
  .catch(error => console.error(error));

async/await selkeyttää koodia

async/await on Promise-olioiden päälle rakennettu syntaksi, joka saa asynkronisen koodin näyttämään synkroniselta. await keskeyttää suorituksen async-funktion sisällä, kunnes Promise valmistuu.

async/await käytännössä

Katso, miten async/await suoristaa edellisen esimerkin — ja miten tavallinen try...catch käsittelee virheet suoraan samassa kohdassa.

function delayedMessage(msg, delay) {
  return new Promise(resolve => {
    setTimeout(() => resolve(msg), delay);
  });
}

async function processMessages() {
  try {
    console.log("Starting process...");
    const msg1 = await delayedMessage("First message!", 1000);
    console.log(msg1);
    const msg2 = await delayedMessage("Second message!", 500);
    console.log(msg2);
    console.log("Process finished.");
  } catch (error) {
    console.error("An error occurred:", error);
  }
}

processMessages();

Noden tapahtumasilmukka

Event Loop on Noden moottori: kun kutsupino tyhjenee, se poimii jonossa olevat callback-funktiot ja suorittaa ne — näin se mahdollistaa estämättömän I/O:n yhdessä säikeessä.

Asynkronisuuden käsitteiden testi

Mikä seuraavista kuvaa parhaiten asynkronisen ohjelmoinnin ensisijaista hyötyä Node.js:ssä?

Kertaus: asynkronisuus ja tapahtumasilmukka

Asynkroninen työ antaa Nodelle sen tehokkuuden: callback-funktiot aloittivat kehityksen, Promiset jäsensivät sen, async/await selkeytti sitä ja Event Loop ohjaa kaikkea.

Aloita maksutta

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
22
Oppitunnit
92

Usein kysytyt kysymykset

Onko oppitunti ”Asynkroninen JavaScript ja tapahtumasilmukka” ilmainen?

Kyllä – oppitunnin ”Asynkroninen JavaScript ja tapahtumasilmukka” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Node.js-taustakehityksen bootcamp-kurssin, päivitä CoddyKit PROhon. Node.js-taustakehityksen bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Asynkroninen JavaScript ja tapahtumasilmukka”?

Opitte ymmärtämään asynkronisen ohjelmoinnin malleja, callback-funktioita, Promiseja, async/awaitia ja Node.js:n tapahtumasilmukkaa. Harjoittelet Node.js-taustakehityksen bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Node.js-taustakehityksen bootcamp-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Node.js-taustakehityksen bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Asynkroninen JavaScript ja tapahtumasilmukka”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Node.js-taustakehityksen bootcamp-oppitunnilla?

Kyllä. Jokainen Node.js-taustakehityksen bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Node.js:n ja NPM:n perusteet
  2. Node.js:n moduulijärjestelmä
  3. Asynkroninen JavaScript ja tapahtumasilmukka
  4. Tiedostojärjestelmän ja streamien käsittely
← Takaisin: Node.js-taustakehityksen bootcamp