这个段代码什么意思?
来源:3-17 Generator
慕运维5828042
2017-05-04
function* foo(x) {
var y = 2 * (yield (x + 1));
var z = yield (y / 3);
return (x + y + z);
}
var a = foo(5);
a.next() // Object{value:6, done:false}
a.next() // Object{value:NaN, done:false}
a.next() // Object{value:NaN, done:true}
var b = foo(5);
b.next() // { value:6, done:false }
b.next(12) // { value:8, done:false }
b.next(13) // { value:42, done:true }问一下,a.next()第一次调用时为啥value值是6?
写回答
1回答
-
快乐动起来呀
2017-05-05
generator函数执行的时候遇到yield或者return暂停,并将紧挨着的表达式返回作为value的值,所以这里返回6是没问题的哈
012017-06-05
相似问题