gpt4 book ai didi

javascript - 关于生成器函数 send() javascript

转载 作者:搜寻专家 更新时间:2023-11-01 04:35:51 25 4
gpt4 key购买 nike

我正在 Mozilla Dev 页面中查看生成器函数。

有一个示例代码具有send() 功能。

function* fibonacci() {
var a = yield 1;
yield a * 2;
}

var it = fibonacci();
console.log(it); // "Generator { }"
console.log(it.next()); // 1
console.log(it.send(10)); // 20
console.log(it.close()); // undefined
console.log(it.next()); // throws StopIteration (as the generator is now closed)

但是,chrome 和 Firefox(最新版本)都在 send() 函数上抛出错误。

对此有何看法?不支持吗?

最佳答案

.sendLegacy generator objects 的一部分特定于 SpiderMonkey 引擎。 It will be removed in some future release .他们已经开始在部分代码中使用 ES6 生成器删除/替换遗留生成器对象(Bug 1215846Bug 1133277)

目前您仍然可以在 Firefox 中使用遗留生成器(此答案的当前版本:43.0.4)。只需在定义时省略 *,只要函数体使用 yield 语句,就会使用遗留生成器。

function fibonacci() {
var a = yield 1;
yield a * 2;
}

var it = fibonacci();
console.log(it);
console.log(it.next());
console.log(it.send(10));
console.log(it.close());
console.log(it.next());

关于javascript - 关于生成器函数 send() javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34921116/

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