javascript - JS:使用 for of 循环关闭迭代器时的非法返回语句
问题描述
我试图尽早打破迭代器并返回结果但Illegal return statement
出错。
const gen = function *(){
yield 1;
yield 2;
yield 3;
}
for (let i of gen()) {
console.log(i)
return i
}
来自 MDN文档
在 for...of 循环中,突然的迭代终止可能由 break、throw 或 return 引起。在这些情况下,迭代器是关闭的。
虽然 break and throw 按预期工作。
解决方案
您return
在生成器功能之外。您不会破坏它们之外的生成器,因为这样做的理由很少。
推荐阅读
- python - 按照 WSQ 指纹规范实现双通道子带编码器
- javascript - 我用于替换 url 的 jsfiddle 正在工作,但不在博客源中
- git - 推送到远程后如何将一个分支的更改合并到另一个分支
- python - pandas中如何将重复的数据行收集到单行中?
- machine-learning - 目标标签仅包含允许标签的子集时的 F1 分数计算
- reactjs - history.push() 更改了 url,但在记录 window.location.href 时,这些更改不会反映
- c# - 检测用户何时离开(即关闭浏览器)
- docker - 无法在第二个对等点上部署 fabcar 链代码
- sql - 如何使用 postgis 查询获取分组几何的 bbox?
- vue.js - 如何在 NuxtJS axios 中为 API 使用 env var?