最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Generator初识

XAMPP教程 admin 615浏览 0评论

一、简介
Generator函数是ES6引入的新型函数,用于异步编程,跟Promise对象联合使用的话会极大降低异步编程的编写难度和阅读难度。

与普通函数的区别:

function关键字与函数名之间有一个星号;
函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是“产出”)。
二、简单示例
1、yield和return
function* Foo() {
yield ‘hello’;
yield ‘world’;
return ‘!’;
}
var foo = Foo();

console.log(foo.next());
console.log(foo.next());
console.log(foo.next());
clipboard.png

注意:generator函数不能直接使用,是通过next()方法获取yield/return的返回结果,而return可以提前终止函数。
2、yield*
字符串方式
function* Foo() {
yield* ‘hello’;
}
var foo = Foo();

console.log(foo.next());
console.log(foo.next());
console.log(foo.next());
console.log(foo.next());
console.log(foo.next());
console.log(foo.next());
clipboard.png

数组方式
function* Foo() {
yield* [‘a’, ‘b’, ‘c’];
}
var foo = Foo();

console.log(foo.next());
console.log(foo.next());
console.log(foo.next());
console.log(foo.next());
clipboard.png

3、与for of配合使用
yield和return
function* Foo() {
yield 1;
yield 2;
return 3;
}
var foo = Foo();

for(var v of foo) {
console.log(v);
}
clipboard.png

可以看出for of不执行return值

yield*
function* Foo() {
yield* ‘hello’;
}
var foo = Foo();

for(var v of foo) {
console.log(v);
}

转载请注明:XAMPP中文组官网 » Generator初识

您必须 登录 才能发表评论!