ES2015 - Generator function (2)

本文介绍了ES2015中的Generator函数,一种重要的异步编程解决方案。通过yield语句定义内部状态并实现多次返回值。文章还展示了如何使用Generator函数来管理控制流、部署Iterator接口以及实现异步操作的同步表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Generator(生成器)

  • Generator function 是ES2015中非常重要的部分,提供了一种异步编程解决方案;
  • Generator function 可以使用yield语句定义不同的内部状态,可以多次返回值;
  • 书写方式如下:
function* G(x) {
    let a = yield (x + 1);
    let b = yield (a * a);
    return (a + b);
}
let g = G(2); //返回一个指向内部状态的指针对象,即遍利器对象;
g.next(); // {value: 3, done: false}
g.next(4); // a = 4; {value: 16, done: false}
g.next(5); // a = 4; b = 5; {value: 9, done: true}
g.next(1); // {value: undefined, done: true}

注:由于next()方法的参数表示上一条yield语句的返回值,所以第一次调用.next()方法时,不能带参数;

  • 应用
    • 异步操作的同步表达式
    • 控制流管理
    • 部署Iterator接口
    • 作为数据结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值