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

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

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

2 года назад

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();

год назад

Ivan Mamtsev

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845