⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

JS Generator 生成器

学习function* · 难度:高级 · +15XP

JavaScript Generator —— 可以暂停的函数

普通函数一旦调用就执行到return。Generator函数(function*)可以中途暂停(yield),然后从暂停处继续执行。它是异步编程和迭代器的基础。

基本用法

function* idGenerator() {
  let id = 1;
  while (true) {
    yield id++;  // 暂停并返回值,下次从这继续
  }
}
const gen = idGenerator();
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // 3

双向传值:next()可以传入参数

function* echo() {
  const a = yield '请输入a';
  const b = yield '请输入b';
  return a + b;
}
const gen = echo();
console.log(gen.next().value);    // '请输入a'
console.log(gen.next(10).value);  // '请输入b'(10传入变成a)
console.log(gen.next(20).value);  // 30 (10+20)

动手练习

  1. 基础练习:用Generator实现斐波那契数列的无限生成。
  2. 进阶应用:用Generator+Promise实现async/await的简易版本。
  3. 项目实战:用Generator实现一个"分页遍历器"——自动处理大量数据的分页加载。
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 231 篇
0 完成
🔥 0