Запись генератора, который выдает * s внутри другого генератора каждый rAF (для того, чтобы выполнить некоторые последовательности событий в различных условиях и времени), обычно это работает нормально.Но когда я открываю или закрываю консоль в Safari, генератор перестает работать (или хуже).
Он либо вылетает из браузера, либо выдает ошибку: «TypeError: yield * subGenerator не является функцией. (In 'yield * subGenerator () ',' yield * subGenerator 'не определен) "
Я осмотрел кучу, но не могу найти соответствующую информацию.Я пытался назначить подгенерирующий элемент для var и регистрировать связанные объекты, чтобы получить дополнительную информацию, но не нашел никаких подсказок.
mainGenerator = function*() {
while (true) {
yield* subGenerator()
}
}
subGenerator = function*() {
while (true) {
yield
}
}
update = function() {
generatey.next()
window.requestAnimationFrame(update.bind(this));
}
var generatey = mainGenerator();
window.requestAnimationFrame(update.bind(this));
JSFiddle ЗДЕСЬ: https://jsfiddle.net/hvofwk0z/
Запустите, ТО откройте (или закройте) консоль, чтобы увидеть, что генератор остановится, иногда с ошибкой, иногда сбоемвкладка.
Невозможность открыть / закрыть консоль без разрыва страницы затрудняет отладку.
Есть что-то, что я пропускаю?Я где-то здесь ошибаюсь?Или это универсальная ошибка es6?