function gen() {
var i=0;
while (i<10)
yield i++;
}
var iter=gen();
for(var x=0; x<4; ++x) {
alert(iter.next());
}
alert("send: "+iter.send(1));
for(var x=0; x<4; ++x) {
alert(iter.next());
}
>
> Hier erhalte ich jedes Mal 0, 1, 2, 3, send: 4, 5, 6, 7, 8 - egal, ob ich als Argument für send 1, 47 oder 376 verwende.
Du machst mit dem Wert, den du an den Iterator sendest, ja auch nichts. Der Iterator muss ihn entgegennehmen:
<script type="application/javascript;version=1.8">
~~~javascript
function gen() {
var i=0;
while (i<10) {
var sentValue = yield i++;
if (typeof sentValue == 'number')
i = sentValue;
}
}
var iter=gen();
for(var x=0; x<4; ++x) {
console.debug(iter.next());
}
console.debug('send', iter.send(5));
for(var x=0; x<4; ++x) {
console.debug(iter.next());
}
</script>
Mathias