Fai*_*man 6 javascript iterator generator for-of-loop
仔细看看代码
function* NinjaGenerator() {
yield "yoshi";
return "Hattori";
}
for (let ninja of NinjaGenerator()) {
console.log(ninja);
}
// console log : yoshiRun Code Online (Sandbox Code Playgroud)
为什么“服部”没有登录?当我们使用 iterator.next() 迭代迭代器时,它会显示该值。
function* NinjaGenerator() {
yield "yoshi";
return "Hattori";
}
let ninjaIterator = NinjaGenerator();
let firstValue = ninjaIterator.next().value;
let secondValue = ninjaIterator.next().value;
console.log(firstValue, secondValue);
// console log: yoshi HattoriRun Code Online (Sandbox Code Playgroud)
有人请帮助我理解 for-of 循环在生成器创建的迭代器中如何工作?
的值next()具有done区分返回值和生成值的属性。产生的值有done = false,而返回的值有done = true。
for-of处理值直到done = true,并忽略该值。否则,没有显式return语句的生成器总是会在循环undefined中产生额外的内容for。当您编写生成器时,您必须对其进行编码以用于return最后一次迭代,而不是yield,这会使它不必要地复杂化。很少需要返回值,因为您通常只需要一致的生成值。
| 归档时间: |
|
| 查看次数: |
840 次 |
| 最近记录: |