Sobes.tech
Junior

Kokius būdus žinote dirbti su asinchroniniu kodu?

sobes.tech AI

Atsakymas iš AI

Kviečiai, pažadai, async/await.

Kviečiai: funkcijos, perduodamos kaip argumentai kitoms funkcijoms ir iškviečiamos po asinchroninės operacijos pabaigos.

Pažadai: objektai, kurie suteikia patogesnį būdą valdyti asinchroniškumą nei kviečiai. Jie turi būsenas pending, fulfilled ir rejected.

// Pavyzdys su Promise
function asyncOperation() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Operacija sėkmingai užbaigta!');
    }, 1000);
  });
}

asyncOperation()
  .then(result => console.log(result))
  .catch(error => console.error(error));

async/await: sintaksės cukrus virš Promise, kuris daro asinchroninį kodą panašesnį į sinchroninį ir gerina jo skaitomumą.

// Pavyzdys su async/await
async function performAsyncOperation() {
  try {
    const result = await asyncOperation();
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}

performAsyncOperation();

Lyginant būdus:

Būdas Skaitymas / Palaikymas Klaidos apdorojimas Srauto valdymas
Kviečiai Mažiau skaitomi (Callback Hell) Sunkiau Sunkiau
Pažadai Patobulinti Patogu (.catch) Patogu (.then, .catch)
async/await Geriausias Patogu (try...catch) Patogu (await)

Šiuo metu geriausias būdas Node.js programose yra naudoti async/await, dėl jo skaitomumo ir patogumo. Pažadai išlieka svarbūs įrankiai, ypač žemesnio lygio įgyvendinime. Kviečiai naudojami pasenusiame kode arba žemo lygio operacijose Node.js branduolyje.