даже через eventEmitter можно ) но ему нельзя сказать “остановись!!” а генератору можно - просто не вызываешь next() и он дальше не ищет по дереву
это да. Я стараюсь логику строить так, что если есть операция, которую нужно применить только к некоторым узлам, то я делаю вначале filter, и уже потом операцию. Оно мб и медленней (тк 2 итерации нужно делать), но код читать удобнее