Проблема в том, что вы не заключили в будущее Отложенное. Ваш код написан в ожидании, что вызовы API не будут выполняться до тех пор, пока не будет запрошен запрос, но это не совсем так, как работает Future.
Как только Future создан, он вызывает его базовый асинхронный c API вызов для представления - и вы используете вышеуказанный объект PassthroughSubject, это означает, что он уже сделан, это вызов к тому времени, когда у вас есть подписчик, запрашивающий данные. Лучший способ решить эту проблему - обернуть Future
в Deferred
издателе, который ждет его создания, пока подписка не запросит данные. Страница будущего использования Использование Combine , а также дополнительная информация о том, как работает Future и что с ним делают другие операторы.