gpt4 book ai didi

ios - RAC 4.0 如何正确链接 SignalProducers?

转载 作者:行者123 更新时间:2023-11-29 01:24:42 26 4
gpt4 key购买 nike

我有一个具有几个不同功能的 View 模型,如下所示:

func somethingSignal() -> SignalProducer<Void, NSError>
{
return SignalProducer {
sink, disposable in

sink.sendNext(blabla)
sink.sendCompleted()
}
}

现在,这些信号需要按顺序运行 - 在前一个信号完成之前不能启动。因此,我有另一个函数,类似于:

func setup() -> SignalProducer<Void, NSError>
{
return somethingSignal()
.then(somethingSignal2())
.then(somethingSignal3())
}

我的印象是 then 是用于此类行为的函数。 Signal3 在 Signal2 完成之前不应该开始,Signal1 在 Signal1 完成之前不应该开始。

调用 setup 的函数有 start() 调用。

我哪里出错了?

最佳答案

看起来正确!

或者,您可以连接所有信号:

SignalProducer<SignalProducer<(), NSError>, NSError>(values: [
somethingSignal(),
somethingSignal2(),
somethingSignal3()
])
.flatten(.Concat)

由于您的类型是Void,您可能不关心发出的值。但是,如果您这样做,请注意这具有稍微不同的语义:它将从所有信号发出值,这与 then 不同。

关于ios - RAC 4.0 如何正确链接 SignalProducers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com