/
Вопросы и ответы
/
JavaScript
/

как использовать es6 arrow function с генераторами в node js

как использовать es6 arrow function с генераторами в node js

год назад

Nikolai Gagarinov

Ответы

0

В стандарте ES6 стрелочные функции могут быть использованы вместе с генераторами в Node.js, но есть несколько особенностей, о которых стоит помнить.

  1. Стрелочные функции не имеют своего контекста this, они захватывают значение this из окружающего контекста. Это означает, что если вам нужно использовать this внутри генератора, вам следует использовать обычную функцию, а не стрелочную.

  2. Стрелочные функции не могут быть использованы как генераторы, поскольку у них нет встроенной поддержки ключевого слова yield.

function* generatorFunction() {
    yield 1;
    yield 2;
    yield 3;
}

const generator = generatorFunction();

for (const value of generator) {
    console.log(value);
}

Если мы всё же хотим использовать стрелочные функции, то можно обернуть генератор внутри обычной функции и затем вызвать эту функцию с использованием стрелочной:

const generatorFunction = function* () {
    yield 1;
    yield 2;
    yield 3;
};

const generator = generatorFunction();

const arrowFunction = () => {
    for (const value of generator) {
        console.log(value);
    }
};

arrowFunction();

9 месяцев назад

Ivan Mamtsev