ES6 では、yield はジェネレーターが自身の操作を内部的に一時停止するために使用するキーワードです。yield の後にジェネレーター関数またはその他の反復可能オブジェクトが続き、yield 式の戻り値はその背後にある反復可能オブジェクトです。反復が完了したときの戻り値、構文は「function*gen(){yieldexpression}」です。
このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。
yield は、ES6 のジェネレーターが自身の操作を内部的に一時停止するために使用するキーワードです。
「内部」という言葉に注意してください。ジェネレータ関数は外部ロジックによって一時停止することはできませんが、yield を通じてのみ一時停止できます。
yield キーワードの後に変数を続けることも、単独で使用することもできます。 yield の後に変数が続く場合 (yield 式と呼ぶことができます)、ジェネレーター関数が一時停止後に実行を再開すると、渡されたパラメーターは、yield 式全体の値として後続の論理演算に参加します。 ##yield の後に変数が追跡されない場合。yield は単独で使用され、一時停止ジェネレータ関数としてのみ使用されます。ジェネレータが動作を再開した後、渡されたパラメータは後続の動作に参加するために yield の値として使用されます。
#例
ステップ 1、ジェネレーター関数を作成します。
function* numbers () { yield 1; yield 2; return 'numbers'; }
function* delegate () { var str = yield* numbers(); console.log(str); yield 3; return 'delegate'; }
var iterator = delegate();
/** * 第一次输出结果 * { value: 1, done: false } */ console.log(iterator.next()) // 第一次输出 /** * 第二次输出结果 * { value: 2, done: false } */ console.log(iterator.next()) // 第二次输出 /** * 第三次输出结果 * numbers * { value: 3, done: false } */ console.log(iterator.next()) // 第三次输出 /** * 第四次输出结果 * { value: 'delegate', done: true } */ console.log(iterator.next()) // 第四次输出
3回目の出力では2行の内容が出力されます。 1行目の内容はデリゲート関数のconsole.log(str)の出力で、値はnumbers関数の戻り値です。
4 回目の出力では、value がデリゲート関数の戻り値である内容が 1 行出力されます。この時点で、done プロパティは true です。 【関連する推奨事項:JavaScript ビデオ チュートリアル
、Web フロントエンド ]
以上がes6 における収量とは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。