Показать сообщение отдельно
  #1 (permalink)  
Старый 20.11.2017, 20:39
Аспирант
Отправить личное сообщение для daima Посмотреть профиль Найти все сообщения от daima
 
Регистрация: 01.08.2012
Сообщений: 59

Генераторы в ES6
Собственно не пойму как эта шняга работает. Расстуждения после чтения теории:

function* powGenerator() {
    var result = Math.pow(yield "a", yield "b");
    yield console.log("cc"); 
    return result;
}
 //Создаем генератор
    var g = powGenerator();

//Начали выполнять, но споткнулись на первом yield, выводим "a"
    console.log(g.next().value);  

//Продолжили выполнение, но споткнулись на 2м елде, вместо yield "a" будет 10, выведем "b"
    console.log(g.next(10).value); 

//Продолжили выполнение, но споткнулись на 3м елде, вместо yield "b" будет 2, надо вывести  консольлогконсольлога, т.е. "cc"
    console.log(g.next(2).value); 

//Продолжаем выполнение, вместо yield console.log("cc"); по идее должно быть "xx", далее возвращаем значение  result
console.log(g.next("xx").value);


Т.е. по идее в консоли должно быть "a", "b", "cc", "xx"(или 100). Вместо этого: "a", "b", "cc", undefined, 100. Откуда взялись undefined, 100?

Последний раз редактировалось daima, 20.11.2017 в 20:43.
Ответить с цитированием