Generator.prototype.next()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2016ë 9ì.
next() ë©ìëë doneê³¼ value ìì±ì ê°ì§ë ê°ì²´ë¥¼ ë°í í©ëë¤. next ë©ìëì 매ê°ë³ì를 ì ê³µíì¬ ê°ì ì ëë ì´í°ë¡ ë³´ë¼ ìë ììµëë¤.
구문
generatorObject.next(value);
매ê°ë³ì
value-
ì ëë ì´í°ë¡ ë³´ë¼ ê°ì ëë¤.
ê°ì
yieldìì ê²°ê³¼ë¡ í ë¹ë©ëë¤. ì를 ë¤ì´variable = yield ììì.next()í¨ìì ì ë¬ë ê°ìvariableì í ë¹ë©ëë¤.
ë°í ê°
ë ê°ì ìì±ì ê°ì§ ê°ì²´ì´ê³ , ì´ ìì±ì ë¤ìê³¼ ê°ìµëë¤.
done(boolean)-
ë°ë³µìê° ë°ë³µ ìíì¤ì ëì ì§ë ê²½ì°
trueì ëë¤. ì´ ê²½ì°valueë ì íì ì¼ë¡ ë°ë³µìì ë°í ê°ì ì§ì í©ëë¤.ë°ë³µìê° ìíì¤ìì ë¤ì ê°ì ìì±í ì ìë ê²½ì°
falseì ëë¤. ì´ëdoneìì±ì ìì í ì§ì íì§ ìë ê²ê³¼ ê°ìµëë¤. value-
ì ëë ì´í°ê° ìì±íê±°ë ë°íí 모ë JavaScript ê°ì ëë¤.
ìì
>next() ì¬ì©í기
ë¤ì ìì ììë ê°ë¨í ì ëë ì´í°ì next ë©ìëê° ë°ííë ê°ì²´ë¥¼ ë³´ì¬ ì¤ëë¤.
function* gen() {
yield 1;
yield 2;
yield 3;
}
const g = gen(); // "Generator { }"
g.next(); // "Object { value: 1, done: false }"
g.next(); // "Object { value: 2, done: false }"
g.next(); // "Object { value: 3, done: false }"
g.next(); // "Object { value: undefined, done: true }"
리ì¤í¸ì í¨ê» next() ì¬ì©í기
ì´ ìì ìì getPageë 리ì¤í¸ë¥¼ ë°ì pageSize í¬ê¸°ì ì²í¬ë¡ "íì´ì§ ëë기"를 ìíí©ëë¤. next를 í¸ì¶í ëë§ë¤ ê·¸ë¬í ì²í¬ê° íë ìì±ë©ëë¤.
function* getPage(pageSize = 1, list) {
let output = [];
let index = 0;
while (index < list.length) {
output = [];
for (let i = index; i < index + pageSize; i++) {
if (list[i]) {
output.push(list[i]);
}
}
yield output;
index += pageSize;
}
}
list = [1, 2, 3, 4, 5, 6, 7, 8];
let page = getPage(3, list); // Generator { }
page.next(); // Object {value: (3) [1, 2, 3], done: false}
page.next(); // Object {value: (3) [4, 5, 6], done: false}
page.next(); // Object {value: (2) [7, 8], done: false}
page.next(); // Object {value: undefined, done: true}
ì ëë ì´í°ì ê° ë³´ë´ê¸°
ì´ ìì ììë ê°ê³¼ í¨ê» next를 í¸ì¶í©ëë¤.
ì°¸ê³ : ì ëë ì´í°ê° ì²ììë ì무ê²ë ìì±íì§ ìì기 ë문ì 첫 ë²ì§¸ í¸ì¶ìì 기ë¡ëë ê²ì ììµëë¤.
function* gen() {
while (true) {
let value = yield null;
console.log(value);
}
}
const g = gen();
g.next(1);
// "{ value: null, done: false }"
g.next(2);
// 2
// "{ value: null, done: false }"
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-generator.prototype.next> |