Скидки до 28% + 2-ая профессия бесплатно и подарки на 50 000₽

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

Аватар пользователя Ivan Mamtsev
Ivan Mamtsev
3 дня назад

В стандарте 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();
0 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Тест-драйв

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

Верстка

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.

Базы данных

Фреймворки