Я отлаживал свой код, который выбирает UserWallet
s из базы данных, а затем генерирует адреса для них, подключаясь к внешнему REST API. Теперь у меня есть подписка, вложенная в другую подписку, но я прочитал, что это плохое решение (на самом деле это не работает, и я думаю, что причина).
userWalletDao.getUnregisteredUserWallets()
.subscribe(nextWallet -> {
log.info("Fetched next wallet for registration {}", nextWallet);
blockchainIntegration.registerUserWallet(nextWallet.getUserId())
.subscribe(address -> {
nextWallet.setAddress(address);
userWalletDao.persistUserWalletAddress(nextWallet);
log.info("Registered wallet {} with address {}.", nextWallet, address);
});
});
Я пытался сделать это за одну подписку, но если я отправляю бумажники по адресам, я теряю объект UserWallet
, чтобы установить для него извлеченный адрес и сохранить его обратно в базе данных.
Как я могу получить кошельки и затем вызвать API, чтобы сгенерировать для него адрес с одной подпиской?
getUnregisteredUserWallets()
возвращает Observable<UserWallet>
и registerUserWallet()
возвращает Single<String>
.