次のようにジェネレーターを呼び出す方法:
const scenarioProvider = (function*() {
....
}).bind(this)();
アロー関数構文による。「bind(this)」を新しい「レキシカル this」に置き換えるという意味です。
次のようにジェネレーターを呼び出す方法:
const scenarioProvider = (function*() {
....
}).bind(this)();
アロー関数構文による。「bind(this)」を新しい「レキシカル this」に置き換えるという意味です。
これは現在不可能であり、ecmascript の将来のバージョンに含まれる可能性はありません。
みんなに知らせるために (近日中に予定されている会議メモでこれが明確になります)、ジェネレーターの矢印を使用しないことに同意しました。ここで特定された種類のトラブルが多すぎます...
アロー関数は、定義上、レキシカル スコープです。アロー関数でジェネレーターを使用することはできません
ただし、矢印関数をバインドできないことに注意してください。
MDNの状態:
アロー関数式 (太いアロー関数とも呼ばれます) は、関数式に比べて構文が短く、この値を字句的にバインドします (独自の this、引数、super、または new.target をバインドしません)。アロー関数は常に無名です。