Red*_*den 0 reactive-cocoa swift reactive-cocoa-4
我正在使用ReactiveCocoa 4.0和Swift.我有一个叫做startedSignal类型的信号Signal<String, NoError>,我在视图控制器中订阅.
startedSignal.observeNext { _ in
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
我基本上想要等待几秒钟,如果startedSignal不发送任何下一个值,则执行其他操作.我查看了文档并查看了类似的内容retry,SignalProducer但我不确定如何实现这一点,因为startedSignal它没有完成或发送错误.
虽然Rex如果你有一些更高级的用例并且你不想自己实现这个逻辑,但是你可以使用现有的运算符来实现这一点ReactiveCocoa,使用timeoutWithError和flatMapErroror 的组合retry:
signal
.promoteErrors(Error.self)
.timeoutWithError(
.Timeout,
afterInterval: interval,
onScheduler: QueueScheduler()
)
.flatMapError { error in
return anotherProducer
}
// Somewhere else:
private enum Error: ErrorType {
case Timeout
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
890 次 |
| 最近记录: |