yield
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ì.
yield í¤ìëë ì ëë ì´í° í¨ì (function* ëë ë ê±°ì generator í¨ì)를 ì¤ì§íê±°ë ì¬ê°íëë° ì¬ì©ë©ëë¤.
문ë²
[rv] = yield [expression];
expression-
ì ëë ì´í° í¨ììì ì ëë ì´í° íë¡í ì½ì íµí´ ë°íí ê°ì ì ìí©ëë¤. ê°ì´ ìëµëë©´,
undefined를 ë°íí©ëë¤. rv-
ì ëë ì´í° ì¤íì ì¬ê° í기 ìí´ì, optional valueì ì ëë ì´í°ì
next()ë©ìëë¡ ì ë¬íì¬ ë°íí©ëë¤.
ì¤ëª
yield í¤ìëë ì ëë ì´í° í¨ìì ì¤íì ì¤ì§ìí¤ê±°ë ê·¸ë¦¬ê³ yield í¤ìë ë¤ìì¤ë ííì[expression]ì ê°ì ì ëë ì´í°ì callerë¡ ë°íëë¤. ì ëë ì´í° ë²ì ì return í¤ìëë¡ ìê° í ì ìë¤.
yield í¤ìëë ì¤ì§ì ì¼ë¡ value ì done ì´ë¼ë ë ê°ì ìì±ì ê°ì§ IteratorResult ê°ì²´ë¥¼ ë°ííë¤. value ìì±ì yield íí(expression)ì ì¤í 결과를 ëíë´ê³ , done ìì±ì ì ëë ì´í° í¨ìê° ìì í ì¢
ë£ëìëì§ ì¬ë¶ë¥¼ ë¶ë¦°(Boolean) ííë¡ ë³´ì¬ì¤ëë¤.
yield ííììì ì¤ì§ëë©´ ,ì ëë ì´í°ì next()ê° ë©ìëê° í¸ì¶ë ëê¹ì§ ì ëë ì´í°ì ì½ë ì¤íì´ ì¤ì§ëë¤. ì ëë ì´í°ì next()ë©ìë를 í¸ì¶í ëë§ë¤ ì ëë ì´í°ë ì¤íì ì¬ê°íë©° ê·¸ë¦¬ê³ ë¤ìì ê°ì ê²½ì°ì ì§íë ë ì¤íëë¤:
yield ëì ëë ì´í°ê° íë² ë©ì¶ê² íê³ ì ëë ì´í°ì ìë¡ì´ ê°ì ë°ííë¤. ë¤ìë²ì next()ê° í¸ì¶ë í, yield ì´íì ì ì¸ë ì½ëê° ë°ë¡ ì¤íëë¤.throwë ì ë¤ë ì´í°ìì ìì¸ë¥¼ ì¤ì í ë ì¬ì©ëë¤. ìì¸ê° ë°ìí ê²½ì° ì ëë ì´í°ì ì ì²´ì ì¼ë¡ ì¤íì´ ì¤ì§ëê³ , ê·¸ë¦¬ê³ ë¤ì ì¼ë ê²ì´ ì¼ë°ì ì¼ë¡ ì¤íë©ëë¤.- ì ëë ì´í° í¨ìê° ì¢
ë£ê° ëìë¤; ì´ ê²½ì°, ì ëë ì´í° ì¤íì´ ì¢
ë£ëê³
IteratorResultëcallerë¡ ê°ì´undefinedì´ê³ doneì ê°ì´ true ë¡ ë¦¬í´íë¤. return문ì ëë¬íë¤. ì´ ê²½ì°ìë, ì´ ê°ì´ ì¢ ë£ëê³IteratorResultëcallerë¡return문ì ìí´ ë°íëë ê°ê³¼ doneì ê°ì´ true ë¡ ë¦¬í´íë¤.
ë§ì½ì optional valueê° ì ëë ì´í°ì next() ë©ìëë¡ ì ë¬ëë©´, optional valueë ì ëë ì´í°ì íì¬ yieldì ì°ì°ì¼ë¡ ë°íëë ê°ì´ ëë¤.
generator ì½ë ê²½ë¡, yieldì°ì°ì, Generator.prototype.next()ì ì´ë¥´ê¸°ê¹ì§ ìë¡ì´ ìì ê°ì ì§ì í ì ìë ë¥ë ¥ê³¼ ì ë¤ë ì´í°ë 커ë¤ë íê³¼ ì ì´ë¥¼ ì ê³µíë¤.
ìì
ë¤ì ì½ëë ì ëë ì´í° í¨ìì ì ì¸ì ììì´ë¤.
function* foo() {
var index = 0;
while (index <= 2)
// when index reaches 3,
// yield's done will be true
// and its value will be undefined;
yield index++;
}
ì ëë ì´í° í¨ìê° ì ìëë©´ , ìë ì½ëì ë³´ì¬ì§ë ê²ì²ë¼ iteratorë¡ ë§ë¤ì´ ì¬ì©í ì ìë¤.
var iterator = foo();
console.log(iterator.next()); // { value: 0, done: false }
console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: undefined, done: true }
ëª ì¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification > # prod-YieldExpression > |