Как создать генератор-производитель, который получает значения извне с другим генератором? Если producer
дает значение внутри генератора, то он работает, но когда я отправляю значение с next
, я получаю undefined
. Есть ли способ сделать это?Создание генератора-генератора значений
function* producer() {
while (true) {
yield // want to send values here
}
}
function* take(n, gen) {
var i = 0
for (var x of gen) {
if (i <= n) {
yield x // want the value sent to the producer
i += 1
} else {
break
}
}
}
var prod = producer()
var res = take(5, prod)
// How can I send values to the producer
// and make the result yield those values?
res.next() // init
console.log(res.next(1)) // {value: undefined, done: false}
console.log(res.next(2)) // {value: undefined, done: false}
// ...
// I want to get
// {value: 1, done: false}
// {value: 2, done: false}
// ...
Я не реально получить, что вы хотите. Вы ожидаете, что 'prod.next' будет функцией идентификации, и хотите« вызвать »это из' take'? – Bergi
Производитель не должен потреблять значения. Почему вы пытаетесь отправить значения? – Bergi