Sobes.tech
Middle

Ako fungujú generátory v JavaScripte v porovnaní s bežnými funkciami?

sobes.tech AI

Odpoveď od AI

Generátory v JavaScripte sú funkcie, ktoré môžu pozastaviť svoje vykonávanie a vrátiť medzičasové hodnoty pomocou kľúčového slova yield. Na rozdiel od bežných funkcií, ktoré sa vykonajú úplne a vrátia jedinú hodnotu, generátory umožňujú vytvárať iterátory s lenivou generáciou hodnôt.

Príklad generátora:

function* countUpTo(max) {
  let count = 1;
  while (count <= max) {
    yield count; // pozastaví vykonávanie a vráti hodnotu
    count++;
  }
}

const counter = countUpTo(3);
console.log(counter.next().value); // 1
console.log(counter.next().value); // 2
console.log(counter.next().value); // 3
console.log(counter.next().done);  // true

Takže, generátory sú užitočné na prácu s sekvenciami dát, ktoré nie je potrebné vypočítať okamžite v celku.