如何使用反应性可可5或6来链信号产生者或信号生产者的序列



我在reactivecocoa/reactiveswift中几乎是菜鸟。我有两个信号生产者。如果第一个SignalProducer返回零,那么我想执行第二个信号生产者,否则就不会执行。我阅读了文档,但我不确定哪种语法可以帮助我进行这样的工作。任何帮助将受到高度赞赏。

好的,因此,只要这些值不是零,您就需要从第一个信号生物产生程序中获取值。然后,您想从第二个SignalProducer中获取值。如果以这种方式措辞,它已经告诉您需要哪个操作员:take(while:)then

let producerA: SignalProducer<Int?, NoError>
let producerB: SignalProducer<Int?, NoError>
...
producerA
  .take(while: { $0 != nil })
  .then(producerB)

只要给定的块返回true, take(while:)操作员将仅转发所有事件。因此,在这种情况下,一旦事件为零,块就会返回false,并且由此产生的SignalProducer完成。

then操作员还将事件从producerA转发到producerA完成,此时producerB已开始,现在转发了producerB的事件。

相关内容

  • 没有找到相关文章

最新更新