Описание тега es6-generator
Генераторы Javascript особенные function
s, который можно приостановить с помощью ключевого слова 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
.