组合 RAC 信号并接收所有值

Combining RAC Signals and receive all values

我正在尝试熟悉 Reactive Cocoa,并且 运行 在组合信号时遇到问题。

我了解 combineLatest 或 zip 只会在所有组合信号至少发送一个值时发送一个值。但是,如果任何信号发送一个值,是否可以组合信号并获得一个值?

我有几个信号,我想在发送一个值时执行相同的代码,而不管其他信号是否都发送了一个值。我是以错误的方式接近这个吗?或者这可能吗?

谢谢

这个怎么样:

RACSignal* a = ...
RACSignal* b = ...

RACSignal* combined = [[RACSignal 
    combineLatest:@[[a startWith:nil], [b startWith:nil]] 
    skip:1];

此处 startWith: 确保所有信号在开始时触发一次,生成组合的 [nil, nil] 元组(skip:1 将跳过)。然后,如果例如 a 发送 @"foo"combined 将发送 [@"foo", nil] 的元组。