Описание тега es6-generator

Если у вас есть вопрос о генераторе ES6 или вопрос, тесно связанный с ним, это подходящий тег.

Генераторы Javascript особенные functions, который можно приостановить с помощью ключевого слова yield, который можно использовать для установления двусторонней связи между генератором и вызывающим абонентом.

Объявление функции генератора:

function *myGenerator(params) {/*...*/}

Звезда (*) символ перед myGenerator() выше означает, что функция является генератором.

Выражение функции генератора:

const myGenerator = function *(params) {/*...*/}

При использовании выражения функции для создания генератора звезда (*) между function ключевое слово и открывающая скобка выше означает, что функция является генератором.

Мы можем назначить function к переменной, но это не запускает function, все, что передано в качестве параметра, будет проигнорировано:

var myExecutor = myGenerator();

myExecutor - итерация, которая проходит через генератор, останавливаясь на каждом yield.

myExecutor.it(someparams)

возобновляет работу генератора с последнего выхода, на котором он остановился ранее (или с начала function) и выполняет function до следующего yield, или, в случае отсутствия следующего yield, до конца function.