如何解决如何在 RxJava 中避免订阅中的 .subscribe
我有一个使用 Rxjava 的代码片段,我在订阅中使用订阅编写了它。我如何使用唯一一个订阅使用地图或平面地图?
import wx
class TestFrame(wx.Frame):
def __init__(self,parent,title="Static Box"):
wx.Frame.__init__(self,-1,title)
panel = wx.Panel(self)
panel.SetBackgroundColour("palegreen")
bSizer9 = wx.BoxSizer( wx.VERTICAL )
bSizer11 = wx.BoxSizer( wx.VERTICAL )
sbSizer4 = wx.StaticBoxSizer( wx.VERTICAL,panel,"Thickness")
sbSizer4.Add( ( 0,0),1,wx.EXPAND,5 )
m_thicknessChoices = [ u"0.062 in",u"0.031 in" ]
self.m_thickness = wx.Choice( sbSizer4.GetStaticBox(),wx.ID_ANY,wx.DefaultPosition,wx.DefaultSize,m_thicknessChoices,0 )
self.m_thickness.SetSelection( 0 )
self.m_thickness.SetBackgroundColour(wx.Colour(240,240))
sbSizer4.Add( self.m_thickness,wx.ALL|wx.EXPAND,15 )
sbSizer4.Add( ( 0,5 )
bSizer11.Add( sbSizer4,10 )
bSizer9.Add( bSizer11,5 )
panel.SetSizer(bSizer9)
self.Show()
if __name__ == '__main__':
app = wx.App()
TestFrame(None)
app.MainLoop()
解决方法
amount.textChanges.observable
.flatMapCompletable {
when {
(it.isNotEmpty() && it.toBigDecimal() > BigDecimal(1500)) -> Completable.fromAction { showDialog(R.string.max_amount_error) }
(it.isNotEmpty() && it.toBigDecimal() > BigDecimal.ZERO) -> getCommissionUseCase.execute(it.toInt() * 100)
.doOnSuccess { payment ->
commission.accept((payment.data.toDouble() / 100).toString())
}
.ignoreElement()
(it.isEmpty()) -> Completable.fromAction { nextBtnEnabled.consumer.accept(false) }
}
}.subscribe()
如果您使用的是 doOnNext
,则可以使用 ignoreElements
,Observable
而不是 doOnSuccess
,ignoreElement
,后者仅适用于 {{1 }}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。