Используйте concatMap
вместо flatMap
.
По умолчанию flatMap будет запрашивать 256 предпочтений у источника и обрабатывать их все сразу. Такое поведение "все за один раз" уменьшается из-за того, что ваш checkForMatch()
кажется блокирующим, но все же: сам источник запрашивается больше, чем вы хотите.
concatMap
, с другой стороны, будет запрашивать предпочтения у источника один за другим, ожидая, пока текущий UserPreference
не будет обработан, прежде чем запросить следующий.