0
我很喜歡ReactiveCocoa/ReactiveSwift的noob。我有兩個SignalProducers。如果第一個SignalProducer返回nil,那麼我想要執行第二個Signal Producer否則不是。我閱讀了文檔,但我不確定哪種語法可以幫助我像這樣工作。任何幫助,高度讚賞。如何使用反應可可5或6鏈接信號發生器或信號發生器序列?
我很喜歡ReactiveCocoa/ReactiveSwift的noob。我有兩個SignalProducers。如果第一個SignalProducer返回nil,那麼我想要執行第二個Signal Producer否則不是。我閱讀了文檔,但我不確定哪種語法可以幫助我像這樣工作。任何幫助,高度讚賞。如何使用反應可可5或6鏈接信號發生器或信號發生器序列?
好吧,所以你想從第一個SignalProducer獲取值,只要這些值不是零。然後,您想要從第二個SignalProducer獲取值。如果措辭這樣一來,它已經告訴你你需要的運營商:take(while:)
和then
:
let producerA: SignalProducer<Int?, NoError>
let producerB: SignalProducer<Int?, NoError>
...
producerA
.take(while: { $0 != nil })
.then(producerB)
的take(while:)
運營商將只轉發所有的事件,只要給定塊返回true。因此,在這種情況下,只要事件爲零,該塊返回false,並且生成的SignalProducer完成。
的then
運營商也從轉發事件producerA
直到producerA
完成,此時producerB
開始,現在從producerB
事件轉發。
你是什麼意思與「返回零」?你的意思是第一個SignalProducer發送一個值爲零的事件嗎?或者你的意思是它根本不發送一個事件,然後終止? – MeXx
第一個生產者發送值爲nil @MeXx的事件 – coolly