如何在 ReactiveSwift 中将 Signal 和 SignalProducer 合并到 Signal 中?
How do I merge a Signal and a SignalProducer into a Signal in ReactiveSwift?
如何在 ReactiveSwift 中将 Signal 和 SignalProducer 合并到 Signal 中?
以下是我目前所拥有的。我不知道如何在第 3 行获得 Signal
。
let (signalA, observerA) = Signal<String, NoError>.pipe()
let signalProducer = /* some signalproducer */
let signalFromSignalProducer == /* how to get a signal from signalProducer here??? */
let mergedSignal = Signal.merge([signalA, signalFromSignalProducer])
我看过这个startWithSignal
方法
public func startWithSignal(_ setup: (ReactiveSwift.Signal<Value, Error>, Disposable) -> Swift.Void)
但它需要关闭。为什么它不能只是 return 一个信号?我不想为我需要信号的每个 signalProducer 创建另一个嵌套闭包。什么。
我是 ReactiveSwift 的新手,老实说,这是我遇到过的最令人困惑的框架
Reactive-Swift有一个start
overload that takes an observer as a parameter,所以我想你可以通过调用signalProducer.start(observerA)
达到和merge
一样的效果。这应该通过 signalA
发送所有生成的信号事件。
至于为什么这样做:startWithSignal
关闭,以便您可以在它开始发送任何事件之前连接生成的信号。如果它只是返回一个信号,则可能会错过您调用开始时间和连接时间之间的事件,具体取决于相关生产者。 举了一个例子。
如何在 ReactiveSwift 中将 Signal 和 SignalProducer 合并到 Signal 中?
以下是我目前所拥有的。我不知道如何在第 3 行获得 Signal
。
let (signalA, observerA) = Signal<String, NoError>.pipe()
let signalProducer = /* some signalproducer */
let signalFromSignalProducer == /* how to get a signal from signalProducer here??? */
let mergedSignal = Signal.merge([signalA, signalFromSignalProducer])
我看过这个startWithSignal
方法
public func startWithSignal(_ setup: (ReactiveSwift.Signal<Value, Error>, Disposable) -> Swift.Void)
但它需要关闭。为什么它不能只是 return 一个信号?我不想为我需要信号的每个 signalProducer 创建另一个嵌套闭包。什么。
我是 ReactiveSwift 的新手,老实说,这是我遇到过的最令人困惑的框架
Reactive-Swift有一个start
overload that takes an observer as a parameter,所以我想你可以通过调用signalProducer.start(observerA)
达到和merge
一样的效果。这应该通过 signalA
发送所有生成的信号事件。
至于为什么这样做:startWithSignal
关闭,以便您可以在它开始发送任何事件之前连接生成的信号。如果它只是返回一个信号,则可能会错过您调用开始时间和连接时间之间的事件,具体取决于相关生产者。