【发布时间】:2018-07-03 08:54:51
【问题描述】:
我正在调试我的代码,该代码从数据库中获取UserWallets,然后通过连接外部 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>。
【问题讨论】:
-
推荐阅读:Dependent sub-flows.