Этот фрагмент можно найти здесь , в статье MDN, описывающей генераторы и итераторы в JavaScript.
function simpleGenerator(){
yield "first";
yield "second";
yield "third";
for (var i = 0; i < 3; i++)
yield i;
}
var g = simpleGenerator();
print(g.next()); // prints "first"
print(g.next()); // prints "second"
print(g.next()); // prints "third"
print(g.next()); // prints 0
print(g.next()); // prints 1
print(g.next()); // prints 2
print(g.next()); // StopIteration is thrown
Над этим мы читаем:
Ключевое слово yield доступно только для блоков кода в HTML, обернутых в
<script type="application/javascript;version=1.7">
(или более позднюю версию).
Действительно, фрагмент работаетхорошо, если встроен в файл HTML и включен в вышеупомянутый тег.Проблема в том, что я попробовал это в Rhino, и, похоже, он не работает вне HTML и браузера.
Итак, как я могу использовать генераторы вне браузера?