Мне действительно сложно понять основные цели Iteratee
и Enumerator
в Play.
я прочел
Я прочитал этот ответ и обнаружил, что вместо модели вытягивания, такой как InputStream
, используется модель выталкивания.
Iteratees - интересный зверь - с одной стороны, он «подталкивает» данные к обработчику, вместо того, чтобы полагаться на обработчик для извлечения данных, и, следовательно, имеет лучшую производительность. С другой стороны, это позволяет обработчику контролировать, когда поток должен быть остановлен.
Но тогда документация Play на Iteratee
s говорит
Или, в более общем смысле, перечисление
java.io.InputStream
с использованиемEnumerator.fromStream
. Важно отметить, что ввод не будет считан до тех пор, пока итерация, к которой применяется этот Enumerator, не будет готова принять дополнительные данные.
Подожди .... так что происходит?
Данные выталкиваются Enumerator
или вытягиваются Iteratee
? (то есть кто решает, когда пора вычислять больше данных)