как использовать es6 arrow function с генераторами в node js
В стандарте ES6 стрелочные функции могут быть использованы вместе с генераторами в Node.js, но есть несколько особенностей, о которых стоит помнить.
Стрелочные функции не имеют своего контекста
this
, они захватывают значениеthis
из окружающего контекста. Это означает, что если вам нужно использоватьthis
внутри генератора, вам следует использовать обычную функцию, а не стрелочную.Стрелочные функции не могут быть использованы как генераторы, поскольку у них нет встроенной поддержки ключевого слова
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();