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

Така, генераторите са полезни за работа с последователности от данни, които не е необходимо да се изчисляват веднага изцяло.