本文阐述了发电机和异步
操作在6。
分享给您
参考,如下:
发电机和异步操作
1发电机概念
发电机可以被理解为一个状态机(好像有很多国家的
反应)和封装了一些内部状态。发电机的
执行是一个旋转的对象可以被发电机产生的每一个国家。加*后的
功能,你可以声明一个
函数发生器。
功能* higenerator(){
yield'hi;
yield'es5;
回去!;
}
VaR HI = higenerator();
console.log(HI); / / higenerator { { { generatorstatus } }:暂停
console.log(hi.next()); / /对象{价值:hi
console.log(hi.next()); / /对象{价值:ES5
console.log(hi.next()); / /对象{价值:!
2.yield声明
因为由生成器函数返回遍历对象,只调用next()
方法遍历下一个状态,它提供了一个暂停执行功能。每个执行下一个(),yield语句遇到停牌,并表达产量返回对象的值为值后;如果没有遇到产量,它返回的返回语句为对象的返回值;如果没有回报,它返回对象的值是未定义的。
3.next方法
下一个()方法可以接受一个
参数,该参数将被视为最后一个收益率语句的返回值。
函数*添加(c,d){
var a=0;
a =屈服;
a =产量a + d;
返回
}
var加(1, 2);
console.log(总和); / /添加{ { { generatorstatus } }:暂停
console.log(sum.next()); / /对象{价值:1、做:假}
console.log(sum.next()); / /对象{价值:楠:假}
console.log(sum.next()); / /对象{价值:定义,完成:true}
如果未传递下一个(),则下一步将无法完成。
函数*添加(c,d){
var a=0;
a =屈服;
a = a + d + 1;
返回
}
var加(1, 2);
console.log(总和); / /添加{ { { generatorstatus } }:暂停
console.log(sum.next()); / /对象{价值:1、做:假}
console.log(sum.next(1)); / /对象{价值:4、做:假}
Console.log (sum.next (3)); //Object {value: undefined, done: true}
4。为……遍历发电机…
当你为……遍历发电机时…您不需要
显示下一个调用()方法。
5。的ergodicer对象由发电机产生函数调用返回的方法,以及对象的
属性的值是收益法的参数。
6。另一个生成器函数在一个生成器函数中调用。
希望本文有助于ECMAscript
程序设计。