Generator 函数基本用法以及原理探究

28 篇文章 0 订阅

1. 基本使用

generator 函数是 ES6 提供的一种异步编程解决方案

一个基本的 generator 函数如下

/*
 * 特征
 * 1. 函数带有 * 符号
 * 2. 函数内可以使用 yield 表达式
 * 3. 返回值为 generator 实例 
 * 4. 返回的实例可以调用 next 等一系列内置方法
*/
function* generatorFn() {
	yield 'hello';
	yield 'world';
	return 'ending';
}
const ge = generatorFn()  // generatorFn {} | 返回generator实例
ge.next()

1.1. yield

yield 表达式是暂停标记;函数执行到此处会暂停

function* generatorFn() {
	const list = [{}]
	console.log(list) // 注意:调用 next 函数执行到这一行后,遇到 yield 表达式,则停止执行
	yield 'hello';
	yield 'world';
	return 'ending';
}
const ge = generatorFn()
ge.next() // 注意:要调用 next 方法才会开始执行

1.2. next

next 函数,是 generator 实例中的方法。

  1. 启动函数的执行
  2. 可以将停止的 generator 函数恢复执行,直到遇见下一个 yield 表达式
  3. 遇到 yield 会停止执行
function* generatorFn() {
	const list = [{}]
	console.log(list)
	yield 'hello';
	yield 'world';
	return 'ending';
}
const ge = generatorFn()
ge.next() // [{}];  { value: 'hello', done: false }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值