生成器基础

一、基础语法
//*表示未生成器函数当为生成器函数时会有yield 
function* 函数名() {
    // 函数内容
    yield;
}
二、调用 Generator 函数

Generator 函数和普通函数一样,都是通过 函数名() 来进行调用:

函数名();

但是, Generator 函数在调用后,并不会执行内部的代码。但是会返回一个迭代器对象。

const it = 函数名();
下一步,调用迭代器的 next() 方法来进入函数执行函数内部代码。

it.next();
三、yield

yield 可以用来阻塞函数内代码的执行。

function* myGenerator() {
    console.log('1、myGenerator执行了');
    yield;
    console.log('2、myGenerator执行了');
}

const it = myGenerator();
it.next();
it.next();

yield 后面可以跟一个表达式:

function* myGenerator() {
    console.log('1、myGenerator执行了');
    yield 'hello';
    console.log('2、myGenerator执行了');
    yield 'world';
    console.log('3、myGenerator执行了');
}

const it = myGenerator();
console.log(it.next());
console.log(it.next());

next() 还可以传递参数,这个参数会作为当前 yield 的返回值:

function* myGenerator() {
    console.log('1、myGenerator执行了');
    const res = yield 'hello';
    console.log('res', res);
}

const it = myGenerator();
console.log(it.next());
console.log(it.next("world"));
四、处理异步

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值