Sobes.tech
Middle

Come funzionano i generatori in JavaScript rispetto alle funzioni normali?

sobes.tech AI

Risposta dell'AI

I generator in JavaScript sono funzioni che possono sospendere la loro esecuzione e restituire valori intermedi tramite la parola chiave yield. A differenza delle funzioni normali, che vengono eseguite completamente e restituiscono un singolo valore, i generatori consentono di creare iteratori con generazione pigra di valori.

Esempio di generatore:

function* countUpTo(max) {
  let count = 1;
  while (count <= max) {
    yield count; // sospende l'esecuzione e restituisce il valore
    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

Pertanto, i generatori sono utili per lavorare con sequenze di dati che non devono essere calcolate immediatamente in tutta la loro completezza.