Я пытаюсь ознакомиться с шаблоном Bloc и создать для себя приложение bittrex, чтобы проверить, что происходит с моими монетами.
Я пытаюсь отобразить список принадлежащих монет.Как;
- BCH x 1,56 (наивысший: 0,076, наименьший: 0,069, сейчас: 0,75): $ 1,238
Проблема заключается в том, что мне нужно сделать два запросаполучить всю информацию.Первый запрос на получение баланса моей монеты (все принадлежащие монеты), а второй - на получение тикера (самая низкая самая высокая цена за последние 24 часа).
В моем блоке есть поток <List<BalanceModel>>
, заполненный в конструкции блока.
Моя цель - загрузить список всех моих монет и показать ту круговую полосу загрузки, где будет отображаться тикер.Чтобы добиться этого, я добавляю 2 дополнительных потока
1- PublishSubject <MarketSummary>
2- PublishSubject<String>
: он принимает индекс монеты, например, «BCH», а функция-обработчик делает запрос тикераи помещает результат (MarketSummary) в первый приемник, который на самом деле будет отображаться в представлении.
Но, к сожалению (на самом деле так действует поток), поток выводит все сводки (одно за другим)и в конце все монеты имеют одинаковую информацию о тикере.
Как лучше всего решить проблему?Мои идеи;
Я имею в виду WrapperModel, в которой обе модели являются переменными, но это как-то некрасиво.
Использование публикацииsub (с дополнительным элементом управления на слое представления, когда поток запускает новый marketSummary)
Цикл foreach после того, как я получил свои монеты, чтобы сделать запрос тикера для каждой монеты.Для этого требуется модель-обертка (которая содержит монету и тикер), и мне нужно долго ждать, прежде чем я смогу что-либо показать на виде.