【发布时间】:2015-09-16 14:45:22
【问题描述】:
我对 FRP 很陌生,但遇到了一个问题:
我订阅了一个每秒触发 subscribeNext 的 observable。
在subscribeNext 的块中,我zip 执行异步操作的可观察对象,在zip 的completed 块中,我对结果执行操作。
let signal: RACSignal
let asynchOperations: [RACSignal]
var val: AnyObject?
// subscribeNext is trigered every second
signal.subscribeNext {
let asynchOperations = // several RACSignal
// Perform asynchronous operations
RACSignal.zip(asynchOperations).subscribeNext({
val = $0
}, completed: {
// perform actions with `val`
})
}
我想停止为signal 触发subscribeNext(通常每秒触发一次),直到达到completed(来自zip)。
有什么建议吗?
【问题讨论】:
-
你有什么理由选择 RAC2,RAC3 更适合 swift
-
RAC3 适用于 iOS8+,我需要兼容 iOS7。
-
订阅信号中的信号几乎总是一种代码味道。尝试将外部信号平面映射到内部信号。这不会解决您的问题,但只是一般 RAC 提示。
标签: ios swift reactive-programming reactive-cocoa