| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/yield | [Back] [Original] |
Get to know MDN better
function* foo(index) {
while (index < 2) {
yield index;
index++;
}
}
const iterator = foo(0);
console.log(iterator.next().value);
// Expected output: 0
console.log(iterator.next().value);
// Expected output: 1
[rv] = yield [expression];
expressionrv next()
yield yield return
yield IteratorResult value donevalue yield done false
yield next() next()
yield next() yield throw IteratorResult value undefined done truereturn IteratorResult value return done true next() yield
yield Generator.prototype.next()
next() yield yield
function* countAppleSales() {
const saleList = [3, 7, 5];
for (let i = 0; i < saleList.length; i++) {
yield saleList[i];
}
}
const appleStore = countAppleSales(); // Generator { }
console.log(appleStore.next()); // { value: 3, done: false }
console.log(appleStore.next()); // { value: 7, done: false }
console.log(appleStore.next()); // { value: 5, done: false }
console.log(appleStore.next()); // { value: undefined, done: true }
next(value) rv = yield expression step next() next()
function* counter(value) {
let step;
while (true) {
step = yield value++;
if (step) {
value += step;
}
}
}
const generatorFunc = counter(0);
console.log(generatorFunc.next().value); // 0
console.log(generatorFunc.next().value); // 1
console.log(generatorFunc.next().value); // 2
console.log(generatorFunc.next().value); // 3
console.log(generatorFunc.next(10).value); // 14
console.log(generatorFunc.next().value); // 15
console.log(generatorFunc.next(10).value); // 26
| ECMAScript 2027 LanguageSpecification # prod-YieldExpression |
| Web Proxy Viewer | New URL | Original Page |