JavaScript ES6 Generatorの解説等で yield 箇所の実効結果を変数に代入しているサンプルを見かけますが、同様の方法で返り値を受け取ることができません。これは実験段階の技術ということで、実行環境に依存するのでしょうか?
ネット上の記事で見かけることが増えてきたため、使ってみたいのですが、わからない点が多く踏み込めていません。
javascript
1'use strict'; 2const generator = function*(i){ 3 let retVal = yield i; // retValに代入できない 4 console.log('log1: ', retVal); 5 retVal = yield 'yield2'; // 同様にretValに代入できない 6 console.log('log2: ', retVal); 7}; 8 9const gen = generator(10); 10 11console.log(gen.next().value); 12console.log(gen.next().value); 13 14/* 期待する結果 */ 15// 10 16// log1: 10 17// yield2 18// log2: yield2 19 20/* jsfiddle purejs、 chrome console */ 21// 10 22// log1: undefined 23// yield2 24// (出力なし)
yieldの結果を代入しているサンプル
es6-cheatsheet - Generators
ES6時代のNode.js - Generator化
developer.mozilla.org
developer.mozilla.org - function*
FireFoxではIteratorResultオブジェクトがが返される?代入しているケースはこのことを指している?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/01 16:24
2016/05/01 17:17