Baseline Widely available
yield
ãã¼ã¯ã¼ãã¯ãã¸ã§ãã¬ã¼ã¿ã¼é¢æ° (function*
ã¾ãã¯å¤ãã¸ã§ãã¬ã¼ã¿ã¼é¢æ°) ã䏿忢ãããåéãããããããã«ä½¿ç¨ãã¾ãã
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];
expression
çç¥å¯
ã¤ãã¬ã¼ã¿ã¼ãããã³ã«çµç±ã§ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ãè¿ãå¤ãå®ç¾©ãã¾ããçç¥ããå ´åã代ããã« undefined
ãè¿ããã¾ãã
rv
çç¥å¯
ã¸ã§ãã¬ã¼ã¿ã¼ã®å®è¡ãåéãã next()
ã¡ã½ããã«æ¸¡ãããªãã·ã§ã³ã®å¤ãåãåãã¾ãã
yield
ãã¼ã¯ã¼ãã¯ãã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã®å®è¡ã䏿忢ããã¸ã§ãã¬ã¼ã¿ã¼ã®å¼ã³åºãå
ã« yield
ãã¼ã¯ã¼ãã«ç¶ãå¤ãè¿ãã¾ããããã¯ã return
ãã¼ã¯ã¼ãã®ã¸ã§ãã¬ã¼ã¿ã¼çã¨èãããã¨ãã§ãã¾ãã
yield
ã¯ãããå«ãã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã®ä¸ã§ç´æ¥ããå¼ã³åºããã¨ããã§ãã¾ãããå¼ã³åºãå
ã®é¢æ°ãã³ã¼ã«ããã¯ããå¼ã³åºããã¨ã¯ã§ãã¾ããã
yield
ãã¼ã¯ã¼ãã¯ã¸ã§ãã¬ã¼ã¿ã¼ã® next()
ã¡ã½ãããå¼ã³åºããã IteratorResult
ãªãã¸ã§ã¯ããè¿ãã¾ããããã«ã¯ value
㨠done
ã® 2 ã¤ã®ããããã£ãããã¾ãã value
ããããã£ã¯ yield
å¼ã®è©ä¾¡çµæã§ããã done
㯠false
ãããªãã¡ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ãå®å
¨ã«ã¯å®äºãã¦ããªããã¨ã示ãã¾ãã
yield
å¼ã«ãã£ã¦å®è¡ã忢ãããã¨ãã¸ã§ãã¬ã¼ã¿ã¼ã® next()
ã¡ã½ãããå¼ã³åºãããã¾ã§ãã¸ã§ãã¬ã¼ã¿ã¼ã®ã³ã¼ãå®è¡ã¯ä¸æåæ¢ãã¾ããã¸ã§ãã¬ã¼ã¿ã¼ã® next()
ã¡ã½ãããå¼ã°ãããã³ã«ãã¸ã§ãã¬ã¼ã¿ã¼ã®å®è¡ãåéãããæ¬¡ã®ãã¡ã®ããããã«éããã¾ã§å®è¡ããã¾ãã
yield
ãå度 next()
ãå¼ã°ãã㨠yield
ã®ç´å¾ããå®è¡ãåéããã¾ããthrow
ãå®å
¨ã«ã¸ã§ãã¬ã¼ã¿ã¼ã®å®è¡ã忢ãã (é常ã®ä¾å¤ãçºçããå ´åã®ããã«) å¼ã³åºãå
ã§å®è¡ãåéããã¾ããIteratorResult
ãªãã¸ã§ã¯ãã® value
ã« undefined
ãã done
ã« true
ã代å
¥ããã¦å¼ã³åºãå
ã«è¿ããã¾ããreturn
ã¹ãã¼ãã¡ã³ãããã®å ´åã¯ã¸ã§ãã¬ã¼ã¿ã¼ã®å®è¡ã¯çµäºãã IteratorResult
ãªãã¸ã§ã¯ãã® value
ã« return
ã¹ãã¼ãã¡ã³ãã§æå®ããå¤ãã done
ã« true
ã代å
¥ããã¦å¼ã³åºãå
ã«è¿ããã¾ããã¸ã§ãã¬ã¼ã¿ã¼ã® next()
ã¡ã½ããã«ãªãã·ã§ã³ã®å¤ã渡ãããå ´åããã®å¤ã¯ã¸ã§ãã¬ã¼ã¿ã¼ã®ç¾å¨ã® yield
æä½ã®è¿å¤ã¨ãªãã¾ãã
ã¸ã§ãã¬ã¼ã¿ã¼ã®ã³ã¼ããã¹ã yield
æ¼ç®åãæ°ããéå§å¤ã Generator.prototype.next()
ã«æ¸¡ããã¨ã§æå®ãããã¨ãã§ããæ©è½ã«ãããã¸ã§ãã¬ã¼ã¿ã¼ã¯å¤§ããªåã¨å¶å¾¡ãæä¾ãã¾ãã
è¦å: æ®å¿µãªãã next()
ã¯é対称ã§ããã仿¹ãããã¾ããã常ã«ç¾å¨ä¸æãã¦ãã yield
ã«å¤ãéãã¾ãããæ¬¡ã® yield
ã®ãªãã©ã³ããè¿ãã¾ãã
次ã®ã³ã¼ãã¯ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã®å®ç¾©ä¾ã§ãã
function* countAppleSales() {
let saleList = [3, 7, 5];
for (let i = 0; i < saleList.length; i++) {
yield saleList[i];
}
}
ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ãå®ç¾©ãããã¨ãã覧ã®ããã«ã¤ãã¬ã¼ã¿ã¼ãæ§ç¯ããããã«ä½¿ç¨ããã¾ãã
let 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) ã§ã¸ã§ãã¬ã¼ã¿ã¼ã«å¤ãéããã¨ãã§ãã¾ãã 'step' ã¯ãã® [rv] = yield [expression] ã®æ§æã§ã¯è¿å¤ã¨ãã¦è©ä¾¡ããã¾ãã
function* counter(value) {
let step;
while (true) {
step = yield ++value;
if (step) {
value += step;
}
}
}
const generatorFunc = counter(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
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4