有没有办法防止重复的 RACSignal 订阅者?
现在我已经设法以一种我希望简化的方式解决了这个问题。
我有我的信号:
ExampleAPI.ProgressList().signalValue.doCompleted({ () -> Void in
self.titleProgressCallRunning = false
})
当它开始时,我只在titleProgressCallRunning
为 false 时订阅:
private func getTitlesProgress() {
if self.titleProgressCallRunning {
return
}
self.titleProgressCallRunning = true
titleProgressSignal.subscribeNextAs({ (titlesProgress:[VDLTitleProgress]) -> () in
self.titlesProgress = titlesProgress
NSNotificationCenter.defaultCenter().postNotificationName(kNotificationTitlesProgressUpdated, object: nil)
})
}
我正在使用 Moya,所以请求只运行一次。但是,如果我两次调用 getTitlesProgress 方法,则该subscribeNextAs
块会在不使用布尔值的情况下触发两次。titleProgressCallRunning
我正在寻找一个很好的解决方案来防止这种情况!