Generator是ES6的生成器
1、Generator 函数是 ES6 提供的一种异步编程解决方案,在函数中可以暂停操作
2、Generator定义的时候需要在function 和方法名直接有个*号
3、函数体内部使用yield表达式,定义不同状态
4、调用next方法返回不同结果
定义generator函数, 号定义方式:
1、function generatorFun() ...
2、function * generatorFun() ...
3、function *generatorFun() ...
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Generator</title>
<script>
// Generator是ES6的生成器
// 1、Generator 函数是 ES6 提供的一种异步编程解决方案,在函数中可以暂停操作
// 2、Generator定义的时候需要在function 和方法名直接有个*号
// 3、函数体内部使用yield表达式,定义不同状态
// 4、调用next方法返回不同结果
// 定义generator函数
// *号定义方式:
// function* generatorFun(){
// function * generatorFun(){
function *generatorFun(){
console.log('start----');
yield 'one';
console.log('start 1----');
yield 'two';
console.log('start 2----');
return 'over'
}
// 调用
let g = generatorFun();
// console.log(g);
// let { value } = g.next();
// console.log(value);
// 调用 next方法
// {value: "one", done: false}
console.log(g.next());
// {value: "two", done: false}
console.log(g.next());
// {value: "over", done: true}
console.log(g.next());
// {value: undefined, done: true}
console.log(g.next());
</script>
</head>
<body>
</body>
</html>
网友评论