Sobes.tech
Middle

Πώς λειτουργούν οι γεννήτριες σε JavaScript σε σύγκριση με τις κανονικές συναρτήσεις;

sobes.tech AI

Απάντηση από AI

Οι γεννήτορες σε JavaScript είναι συναρτήσεις που μπορούν να διακόψουν την εκτέλεσή τους και να επιστρέψουν ενδιάμεσα τιμές χρησιμοποιώντας τη λέξη-κλειδί yield. Σε αντίθεση με τις κανονικές συναρτήσεις, που εκτελούνται πλήρως και επιστρέφουν μια μοναδική τιμή, οι γεννήτορες επιτρέπουν τη δημιουργία επαναληπτών με επιεική παραγωγή τιμών.

Παράδειγμα γεννήτορα:

function* countUpTo(max) {
  let count = 1;
  while (count <= max) {
    yield count; // διακόπτει την εκτέλεση και επιστρέφει την τιμή
    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

Έτσι, οι γεννήτορες είναι χρήσιμοι για εργασία με ακολουθίες δεδομένων που δεν χρειάζεται να υπολογιστούν αμέσως ολόκληρες.