gpt4 book ai didi

javascript - 浏览器外的生成器和 "yield"

转载 作者:行者123 更新时间:2023-12-02 20:01:24 25 4
gpt4 key购买 nike

这是找到的代码片段 here ,在一篇描述 JavaScript 中的生成器和迭代器的 MDN 文章中。

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

上面我们读到:

The yield keyword is only available to code blocks in HTML wrapped in a

<script type="application/javascript;version=1.7">

block (or higher version).

事实上,当嵌入 HTML 文件并包含在上述标记中时,该代码片段可以正常工作。问题是,我在 Rhino 中尝试过,它似乎无法在 HTML 和浏览器之外工作。

那么如何在浏览器之外使用生成器呢?

最佳答案

https://developer.mozilla.org/en/New_in_Rhino_1.7R1#JavaScript_1.7_features

To enable JavaScript 1.7 support, you must set the version as 170 using the Context.setLanguageVersion() API call. If you are using the Rhino shell, you can specify -version 170 on the command line or call version(170) in code executed by the shell.

关于javascript - 浏览器外的生成器和 "yield",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7944389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com