ES6 Generator

by Artem

JavaScript

'use strict';

function* createGreeting() {
  try {
    const name = yield;
    yield `Hello, ${name}!`;
  } catch (error) {
    console.log(`Error: ${error}`);
  }
}

const greeting = createGreeting();
greeting.next();
greeting.throw('Something went wrong!');
//console.log(greeting.next('Pete').value);

function* createThreeToFourCounter() {
  yield 3;
  return 4;
}

function* createCounter() {
  yield 1;
  yield 2;
  const four = yield * createThreeToFourCounter();
  console.log(`${four} - from delegated generator`);
  yield 5;
}

for (const i of createCounter()) {
  console.log(i);
}