有没有办法防止重复的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,所以请求已经只运行了一次。但是,如果我两次调用subscribeNextAs方法,就会在不使用布尔titleProgressCallRunning的情况下触发getTitlesProgress块两次。
我正在寻找一个很好的解决方案来防止这种情况发生!
发布于 2015-04-04 10:26:14
免责声明:我没有看到Swift的RAC的当前状态。
在objc的当前版本中,您只需使用RACMulticastConnection在订阅者之间共享副作用。有关它的更多信息,请参阅Design Guidelines。
https://stackoverflow.com/questions/29428254
复制相似问题