Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用for of循环将值传递到生成器_Javascript - Fatal编程技术网

Javascript 使用for of循环将值传递到生成器

Javascript 使用for of循环将值传递到生成器,javascript,Javascript,当使用for of循环对生成器进行迭代时,是否有方法将值传递回生成器 在下面的代码中,当我手动调用iterable.next('some value')时,我可以传回一个值,但是for of循环似乎调用了.next()方法,没有任何值 我希望我已经用一种可以理解的方式解释了这一点 const test = function* generator() { const list = [1, 2, 3, 4] for (const x of list) { const data = y

当使用for of循环对生成器进行迭代时,是否有方法将值传递回生成器

在下面的代码中,当我手动调用
iterable.next('some value')
时,我可以传回一个值,但是
for of
循环似乎调用了
.next()
方法,没有任何值

我希望我已经用一种可以理解的方式解释了这一点

const test = function* generator() {
  const list = [1, 2, 3, 4]
  for (const x of list) {
    const data = yield x
    console.log(data)
  }
}
const iterable = test()
console.log(iterable.next())
console.log(iterable.next('test2'))

console.log('FOR OF LOOP')
for (const y of iterable) {
  console.log(y)
}

如果你想把某个东西传回去,你需要负责调用
next()
,你不能只把它委托给
for…of

使用
while
循环执行此操作是惯用方法,但也可以使用
for
循环执行此操作。例如:

const test=函数*生成器(){
常量列表=[1,2,3,4]
用于(列表的常数x){
常数数据=收益率x
log(“传入值:”,数据)
}
}
常量=测试()
console.log('FOR OF LOOP'))
让消息=0
for(设y=iterable.next();!y.done;y=iterable.next(++消息)){
console.log(y.value)
}