Γεννήτριες στο JavaScript
Υπάρχουν ειδικές συναρτήσεις, με τις οποίες μπορούμε να δημιουργούμε τους δικούς μας επαναληπτές. Αυτές οι συναρτήσεις ονομάζονται γεννήτριες. Τα ονόματα αυτών των συναρτήσεων πρέπει να ξεκινούν με αστερίσκο:
function *func() {
}
Μέσα στις γεννήτριες χρησιμοποιείται η λέξη-κλειδί
yield, που υποδεικνύει τι
θα πρέπει να επιστρέψει ο επαναληπτής στο
επόμενο κάλεσμα. Για παράδειγμα
ας κάνουμε έτσι ώστε το πρώτο
κάλεσμα να επιστρέφει 1, το δεύτερο - 2,
και το τρίτο - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
Η γεννήτρια ως αποτέλεσμα επιστρέφει επαναληπτή:
let iter = func();
Ας ελέγξουμε τη λειτουργία του επαναληπτή μας:
console.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
Δημιουργήστε έναν επαναληπτή, του οποίου κάθε κάλεσμα
θα επιστρέφει αριθμούς από το 5
έως το 1.