Sobes.tech
Middle

Jak działają generatory w JavaScript w porównaniu do zwykłych funkcji?

sobes.tech AI

Odpowiedź od AI

Generatory w JavaScript to funkcje, które mogą wstrzymywać swoje wykonanie i zwracać wartości pośrednie za pomocą słowa kluczowego yield. W przeciwieństwie do zwykłych funkcji, które są wykonywane w całości i zwracają pojedynczą wartość, generatory pozwalają na tworzenie iteratorów z leniwą generacją wartości.

Przykład generatora:

function* countUpTo(max) {
  let count = 1;
  while (count <= max) {
    yield count; // wstrzymuje wykonanie i zwraca wartość
    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

W związku z tym, generatory są przydatne do pracy z sekwencjami danych, które nie muszą być obliczane od razu w całości.