mko*_*mko 8 javascript generator ecmascript-6
这是一个ES6生成器:
function *Gen() {
var input1 = yield 'output1'
}
var gen = Gen()
gen.next('input1').value // return 'output1'
Run Code Online (Sandbox Code Playgroud)
gen称为1st time,返回output1但变量input1不等于'input1'传入的值,input实际值是'input2',第二次next('input2')调用
我的问题是如何访问input1下次调用的第一次,例如:
function *Gen() {
var input 1 = param1
var input2 = yield 'output1'
}
Run Code Online (Sandbox Code Playgroud)
小智 20
当您获得没有yields 的发生器时,您可以将值推到(您处于生成器函数的开头).您需要yield通过gen.next()不带任何参数调用来触发生成器并到达第一个.此时yield,您可以随意使用,通过gen.next('input1')有效地将表达式替换为yield 'output1'传递给next'input1' 的值,可以提升您的价值.然后您需要另一个yield或一个return为发电机的消费者提供自定义值.这是代码:
function *Gen() {
var input1 = yield 'output1'
return input1
}
var gen = Gen()
gen.next();
gen.next('input1').value // return 'input1'
Run Code Online (Sandbox Code Playgroud)