Sobes.tech
Middle

Kā darbojas generatori JavaScript, salīdzinot ar parastajām funkcijām?

sobes.tech AI

Atbilde no AI

JavaScript ģeneratori ir funkcijas, kas var apstāt savu izpildi un atgriezt starpposma vērtības, izmantojot atslēgvārdu yield. Atšķirībā no parastajām funkcijām, kas tiek pilnībā izpildītas un atgriež vienu vērtību, ģeneratori ļauj izveidot iterators ar slinku vērtību ģenerēšanu.

Ģeneratora piemērs:

function* countUpTo(max) {
  let count = 1;
  while (count <= max) {
    yield count; // apstādinās izpildi un atgriezīs vērtību
    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

Tādējādi ģeneratori ir noderīgi, strādājot ar datu secēm, kurām nav nepieciešams tūlītējs pilnīgs aprēķins.